- 无缝集成 spring-boot-starter
- 封装mq的操作,方便使用
- 实现基于可靠消息服务的分布式事务(采用AOP思想与Spring无缝集成,仅通过注解就可使用)
- 可靠消息默认存储方式:redis (可自行实现)
- 目前消息中间件支持 : rabbitmq
Maven
top.arkstack shine-mq 2.0.5
Distributed transaction
众所周知,数据库能实现本地事务,也就是说在同一个数据库中,可以保证事务的原子性,就是全部成功或者失败,上篇文章也写过简单的多数据源事务的解决方案(类似2PC)
但现在的系统往往采用微服务架构,业务系统拥有独立的数据库,因此就出现了跨多个数据库的事务需求,这种事务即为“分布式事务”。
针对这样的问题一般常用的方案有:
- 2PC/3PC (两阶段提交协议/三阶段提交协议)
- TCC (补偿型)
- 基于可靠消息服务的分布式事务(异步确保型)