lj Blog

Thinking will not overcome fear but action will.

日志

日志自动脱敏

基于 logback filter 拦截并脱敏参数 import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.filter.Filter; import ch.qos.logback.core.spi.FilterReply; import com.jovision.vpass.pms.commo...

MDC

子线程使用父线程MDC

使用 spring 线程池代替 jdk 线程池 @Bean("logAuditThreadExecutor") Executor logAuditThreadExecutor() { ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); thread...

短链接

生成短链接的一些思考

目标: 将 http://www.wozhenlihai.com/course/signup/list.json?studentId=1221323232&mobile=23231232332323 生成 http://a.lh.com/sdfsdfas 首先,两个域名 wozhenlihai.com,lh.com nginx 配置对 lh.com 的解析,解析到根据短...

Linux 服务器 CPU 100% 排查

Linux 服务器 CPU 100% 排查

查看占用最高的进程 top -c 再按 P 显示进程所有的线程 top -Hp 再按 P 将线程ID转换为16进制 printf “%x\n” 查看堆栈信息 jstack | grep ‘0x2a34’ -C5 --color top 拓展 P: 根据CPU资源使用大小进行排序 M: 根据内存资源使用大小进...

分布式事务-最大努力通知型

最大努力通知型

简介 记录事务日志,然后系统根据指定的通知策略来重复通知消费. 就是尽量去通知,至于通知成功还是失败,无所谓,我不保证!一般会指定一个通知次数,如果超过次数还是失败,那就不通知了,等被通知方主动来查询。 最大努力通知策略只能算是一种跨平台的数据一致性解决方案,适用于一些时间敏感度低的业务,强调的是最终一致性! 架构图 架构图 流程说明 假设两个业务系统的两个业务AB。实...

分布式事务-mybatisplus

mybatisplus 的分布式事务支持

简介 mybatis-plus 提供了一个简单的基于mq 的分布式事务消息,但是需要注意的是他其实就是一个正常的队列,只不过是持久化等做了处理.实际上并不是一个标准的分布式事务 官方并不支持强一致性事务: https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter/wikis/%E5%B8%B8%E8%A7%81%E9...

分布式事务-XA

XA 协议

简介 X/Open XA 协议 最早的分布式事务模型是 X/Open 国际联盟提出的 X/Open Distributed Transaction Processing(DTP)模型,也就是大家常说的 X/Open XA 协议,简称XA 协议。 https://publications.opengroup.org/standards/dist-computing https://pub...

分布式事务-TCC

TCC

简介 TCC(Try-Confirm-Cancel)分布式事务模型相对于 XA 等传统模型,其特征在于它不依赖资源管理器(RM)对分布式事务的支持,而是通过对业务逻辑的分解来实现分布式事务。 TCC 模型认为对于业务系统中一个特定的业务逻辑,其对外提供服务时,必须接受一些不确定性,即对业务逻辑初步操作的调用仅是一个临时性操作,调用它的主业务服务保留了后续的取消权。如果主业务服务认为全局事...

分布式事务分享总览

分布式事务分享总览

分布式事务分享-lj 目录 spring 事务浅析 文章:spring 事务 ; spring 事务再理解 分布式事务基础 分布式事务 XA 分布式事务 CAP 分布式事务 BASE 分布式事务-TCC MQ 事务,类比 MySQL 事务 分布式事务-基于可靠消息 分布式事务-最大努力通知型 分布式事务-mybatisplus 总结 分布式事务不仅仅是性能方面的损失...

分布式事务基础

分布式事务基础

本地事务与分布式事务 当下互联网绝大部分公司都进行了数据库拆分和服务化(SOA),微服务。 在这种情况下,完成某一个业务功能可能需要横跨多个服务,操作多个数据库。 这就涉及到到了分布式事务,用需要操作的资源位于多个资源服务器上,而应用 需要保证对于多个资源服务器的数据的操作,要么全部成功,要么全部失败。 本质上来说,分布式事务就是为了保证不同资源服务器的数据一致性 本地事务只会操作一个数...