随笔分类 -  开发框架

从0到1带你手撸一个请求重试组件,不信你学不会!
摘要:背景介绍 在实际的项目应用场景中,经常会需要遇到远程服务接口的调用,时不时会出现一些接口调用超时,或者函数执行失败需要重试的情况,例如下边的这种场景: 某些不太稳定的接口,需要依赖于第三方的远程调用,例如数据加载,数据上传相关的类型。 方案整理 基于try catch机制 这种方式来做重试处理的话, 阅读全文

posted @ 2021-10-08 12:47 Java知音号 阅读(363) 评论(0) 推荐(0) 编辑

引入 Gateway 网关,这些坑一定要学会避开!!!
摘要:Spring cloud gateway是替代zuul的网关产品,基于Spring 5、Spring boot 2.0以上、Reactor, 提供任意的路由匹配和断言、过滤功能。上一篇文章谈了一下Gateway网关使用不规范,同事加班泪两行~,这篇文章将会侧重于其他的几个需要注意的地方。 网关实现 阅读全文

posted @ 2021-02-02 14:33 Java知音号 阅读(10439) 评论(1) 推荐(0) 编辑

SpringBoot项目,如何优雅的把接口参数中的空白值替换为null值?
摘要:问题发生 我们公司代码生成的时候,查询列表统一都是使用了setEntity() ,查询写法如下: public List<BasReservoirArea> selectList(BasReservoirArea basReservoirArea) { QueryWrapper<BasReservo 阅读全文

posted @ 2021-01-14 10:50 Java知音号 阅读(4055) 评论(1) 推荐(0) 编辑

来吧,自己动手撸一个分布式ID生成器组件
摘要:在经过了众多轮的面试之后,小林终于进入到了一家互联网公司的基础架构组,小林目前在公司有使用到架构组研究到分布式id生成器,前一阵子大概看了下其内部的实现,发现还是存在一些架构设计不合理之处。但是又由于适用于当前的业务场景,所以并没有做过多的优化,这里记录一些相关的技术笔记。 研发背景 在分布式服务中 阅读全文

posted @ 2020-12-22 11:25 Java知音号 阅读(1426) 评论(1) 推荐(1) 编辑

单元测试框架怎么搭?快来看看新版Junit5的这些神奇之处吧!
摘要:为什么使用JUnit5 JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。 JUnit5易扩展,包容性强,可以接入其他的测试引擎。 功能更强大提供了新的断言机制、参数化测试、重复性测试等新功能。 ps:开发人员为什么还要测试,单测 阅读全文

posted @ 2020-09-30 09:39 Java知音号 阅读(817) 评论(0) 推荐(3) 编辑

探讨Netty获取并检查Websocket握手请求的两种方式
摘要:在使用Netty开发Websocket服务时,通常需要解析来自客户端请求的URL、Headers等等相关内容,并做相关检查或处理。本文将讨论两种实现方法。 方法一:基于HandshakeComplete自定义事件 特点:使用简单、校验在握手成功之后、失败信息可以通过Websocket发送回客户端。 阅读全文

posted @ 2020-07-31 14:54 Java知音号 阅读(6128) 评论(1) 推荐(1) 编辑

RocketMQ在面试中那些常见问题及答案+汇总
摘要:0、汇总 RocketMQ入门到入土(一)新手也能看懂的原理和实战! RocketMQ入门到入土(二)事务消息&顺序消息 从入门到入土(三)RocketMQ 怎么保证的消息不丢失? RocketMQ入门到入土(四)producer生产消息源码剖析 RocketMQ入门到入土(五)消息持久化存储源码解 阅读全文

posted @ 2020-07-17 09:14 Java知音号 阅读(35381) 评论(1) 推荐(7) 编辑

创建线程那么容易,为什么非要让我使用线程池?(深深深入剖析)
摘要:一、概述 1、问题 先看我们遇到的问题:我们创建线程的方式很简单,new Thread(() -> {...}),就是因为这么简单粗暴的方式,才带来了致命的问题。首先线程的创建和销毁都是很耗时很浪费性能的操作,你用线程为了什么?为了就是异步,为了就是提升性能。简单的new三五个Thread还好,我需 阅读全文

posted @ 2020-07-13 09:35 Java知音号 阅读(3576) 评论(0) 推荐(1) 编辑

RocketMQ入门到入土(二)事务消息&顺序消息
摘要:接上一篇:RocketMQ入门到入土(一)新手也能看懂的原理和实战! 一、事务消息的由来 1、案例 引用官方的购物案例: 小明购买一个100元的东西,账户扣款100元的同时需要保证在下游的积分系统给小明这个账号增加100积分。账号系统和积分系统是两个独立是系统,一个要减少100元,一个要增加100积 阅读全文

posted @ 2020-06-30 10:05 Java知音号 阅读(2124) 评论(0) 推荐(1) 编辑

RocketMQ入门到入土(一)新手也能看懂的原理和实战!
摘要:学任何技术都是两步骤: 搭建环境 helloworld 我也不例外,直接搞起来。 一、RocketMQ的安装 1、文档 官方网站 http://rocketmq.apache.org GitHub https://github.com/apache/rocketmq 2、下载 wget https: 阅读全文

posted @ 2020-06-28 09:46 Java知音号 阅读(18699) 评论(3) 推荐(1) 编辑

开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel~
摘要:不知道你是否在工作中有遇到过类似情况: dubbo接口调试复杂,需要通过telnet命令或者通过consumer调用来触发。 telnet语句参数格式复杂,每次编写都要小心谨慎,一旦出错又需重来。 复杂对象参数传参调用接口复杂,编写java api调用接口时间成本较高。 上述这些坑我在工作中都有遇见 阅读全文

posted @ 2020-06-17 09:57 Java知音号 阅读(4202) 评论(0) 推荐(1) 编辑

肝一波 ~ 手写一个简易版的Mybatis,带你深入领略它的魅力!
摘要:零、准备工作 <dependencies> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-c 阅读全文

posted @ 2020-06-12 09:52 Java知音号 阅读(619) 评论(0) 推荐(0) 编辑

Redis企业级数据备份与恢复方案
摘要:一、持久化配置 RBD和AOF建议同时打开(Redis4.0之后支持) RDB做冷备,AOF做数据恢复(数据更可靠) RDB采取默认配置即可,AOF推荐采取everysec每秒策略 AOF和RDB还不懂的,请转移到如下几篇: 看完这篇还不懂Redis的RDB持久化,你们来打我! 天天在用Redis, 阅读全文

posted @ 2020-06-04 14:33 Java知音号 阅读(822) 评论(0) 推荐(0) 编辑

什么,容器太多操作不过来?我选择Docker Compose梭哈
摘要:接上一篇:面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧 一、容器之间通信 1、单向通信 1.1、什么意思 mysql和tomcat是两个独立的容器,但是tomcat需要和mysql通信,而mysql完全不用和tomcat通信,这就叫容器之间的单向通信。 1.2、怎么通信 阅读全文

posted @ 2020-05-28 10:44 Java知音号 阅读(2069) 评论(3) 推荐(4) 编辑

面试官:你说你精通 Docker,那你来详细说说 Dockerfile 吧
摘要:接上一篇:30分钟快速上手Docker,看这篇就对了! 一、 带着问题学Dockerfile 1、疑问 我们都知道从远程仓库可以pull一个tomcat等镜像下来,然后docker run启动容器,然后docker exec -it 容器id /bin/bash进入容器,往webapps下仍我们的程 阅读全文

posted @ 2020-05-25 09:35 Java知音号 阅读(4419) 评论(0) 推荐(4) 编辑

30分钟快速上手Docker,看这篇就对了!
摘要:一、历史演化 1、演化史 2、物理机时代 2.1、图解 一个物理机上安装操作系统,然后直接运行我们的软件。也就是说你电脑上直接跑了一个软件,并没有开虚拟机什么的,资源极其浪费。 2.2、缺点 部署慢 成本高 虚拟机都不开,直接上物理机部署应用,那成本能不高嘛 资源浪费 硬件资源没有合理利用 不易迁移 阅读全文

posted @ 2020-05-22 09:39 Java知音号 阅读(1570) 评论(1) 推荐(1) 编辑

这一篇带你学点儿 Java8 中的流式数据处理
摘要:作者:琦彦 blog.csdn.net/fly910905/article/details/87533856 java8的流式处理极大了简化我们对于集合、数组等结构的操作,让我们可以以函数式的思想去操作,本篇文章将探讨java8的流式数据处理的基本使用。 一. 流式处理简介 在我接触到java8流式 阅读全文

posted @ 2020-05-13 14:59 Java知音号 阅读(1110) 评论(0) 推荐(0) 编辑

读写分离很难吗?SpringBoot结合aop简单就实现了
摘要:前言 入职新公司到现在也有一个月了,完成了手头的工作,前几天终于有时间研究下公司旧项目的代码。在研究代码的过程中,发现项目里用到了Spring Aop来实现数据库的读写分离,本着自己爱学习(我自己都不信…)的性格,决定写个实例工程来实现spring aop读写分离的效果。 环境部署 数据库:MySq 阅读全文

posted @ 2020-05-12 23:52 Java知音号 阅读(2018) 评论(1) 推荐(0) 编辑

策略模式在公司项目中的运用实践,看完又可以涨一波实战经验了!
摘要:营销系统是一个动态的、有机地结合的系统,经常会随着业务的不断变化发生调整,因此从事这一业务的开发可让我头疼了。 之前在工作中就不乏一次遇到过随意调整营销策略的情况,在部分场景下由于使用了硬编码的方式来实现,因此在调整策略的时候显得特别不灵活。 下边我列举一个曾经遇到过的应用场景: 业务部门需要上线一 阅读全文

posted @ 2020-05-07 09:26 Java知音号 阅读(1188) 评论(0) 推荐(0) 编辑

开发机直连 Docker 中的 Redis 容器小教程
摘要:在笔者日常开发中,都是把redis装在windows系统中。虽然可以通过RedisDesktopManager等客户端工具连接操作redis,但是还是觉得low了一些。因为作为程序员,我可能更想在Linux系统操作redis,这样在遇到生产环境实操时候,才不会显得束手无策。 今天它来了,我们将会在虚 阅读全文

posted @ 2020-04-29 15:38 Java知音号 阅读(5076) 评论(0) 推荐(1) 编辑

导航