- 博客(5)
- 收藏
- 关注
原创 Canal+Mysql+RocketMq实现数据库表记录信息同步
一 前言:我们都知道一个系统最重要的是数据,而数据是保存在数据库里,但是很多时候不单止要保存在数据库中,还要同步保存到Elastic Search、HBase、Redis等等,那么我们将如何把数据同步到其他的存储引擎中呢?传统的同步手段无非是通过业务逻辑中代码的调用,但是这样业务和数据同步功能存在不小的耦合性,所以觉得这种方式不是很优雅,后期扩展性也不是很强,这时突然了解到阿里开源的框架Canal,它可以很方便地同步数据库的增量数据到其他的存储应用官网提供的示意图:二 搭建My...
2021-08-13 13:45:45
1516
原创 使用ThreadLocal优雅地存储和传递上下文数据
前言:最近在整合SpringCloudAlibaba框架的过程中遇到了一个如何去存储和传递用户登录信息的问题,最开始的时候想法是将前端带回来的token解析成用户信息后再将其写到header中,然后从gateway传递到指定的服务中,最后指定的服务从header中取出做相应的业务逻辑操作,由于服务中可能有诸多接口需要用到用户的登录信息,按照上述操作就需要对每个接口进行修改,这样确实可以实现我们的目的,但是如此操作显然不够优雅,后期也不方便进行扩展,思考再三决定使用ThreadLocal多线程上下文传递参
2021-06-28 16:34:22
4662
原创 SpringBoot不返回 Null 字段,设置某些字段不返回前端
1.场景一:有时候我们返回给前端的数据是包含null的,而这些为null的值前端也不好处理,所以我们就没必要把null值返回给前端方式一:在类的上面加注解import com.fasterxml.jackson.annotation.JsonInclude;@JsonInclude(JsonInclude.Include.NON_NULL)public class User{}方法二:在配置文件中声明spring: jackson: default-pro
2021-06-25 10:14:20
4160
原创 Mybatis的三种批量插入以及效率比较
第一种:普通for循环插入@Testpublic void testInsertBatch() throws Exception { long start = System.currentTimeMillis(); User user; SqlSession sqlSession = sqlSessionTemplate.getSqlSessionFactory().openSession(false); UserDao mapper = sqlSession.get
2021-06-25 10:05:51
714
原创 如何优雅地处理日期格式化类SimpleDateFormat存在的线程安全问题
SimpleDateFormat是线程不安全的类,一般不建议定义为static变量,因为在多线程操作时会出现线程不安全问题,进而导致相关的问题解决方案:使用ThreadLocal进行操作import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/** * 考虑到SimpleDateFormat为线程不安全对象,故应用ThreadLocal来解决, * 使Simple
2021-06-25 09:57:46
299
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人