SpringCloud结合ByteTCC如何实现数据强一致性原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2642个文字,预计阅读时间需要11分钟。
1+结合背景和约束,使用Spring Cloud的分布式事务场景,推荐使用支持度较好的Byte-TCC框架,GitHub星标2600,使用起来非常方便,原理也很清晰,非常适合学习。
1 使用背景和约束
公司使用的是springcloud,面临分布式事务的场景的时候,可以使用对springcloud支持比较好的byte-tcc框架,git目前2600星,使用起来也非常方便,原理也很清晰,非常适合学习。 github.com/liuyangmin... ,结合cloud有几个重点约束如下,
(1)一个业务接口,需要有三种实现类,分别是try,confirm,cancel,符合tcc的思路。实现方法必须加Transactional,且propagation必须是Required, RequiresNew, Mandatory中的一种。
(2)服务提供方Controller必须添加@Compensable注解,不允许对Feign/Ribbon/RestTemplate等HTTP请求自行进行封装。想想看为什么?
(3)在每个参与tcc事务的数据库中创建bytejta表。
本文共计2642个文字,预计阅读时间需要11分钟。
1+结合背景和约束,使用Spring Cloud的分布式事务场景,推荐使用支持度较好的Byte-TCC框架,GitHub星标2600,使用起来非常方便,原理也很清晰,非常适合学习。
1 使用背景和约束
公司使用的是springcloud,面临分布式事务的场景的时候,可以使用对springcloud支持比较好的byte-tcc框架,git目前2600星,使用起来也非常方便,原理也很清晰,非常适合学习。 github.com/liuyangmin... ,结合cloud有几个重点约束如下,
(1)一个业务接口,需要有三种实现类,分别是try,confirm,cancel,符合tcc的思路。实现方法必须加Transactional,且propagation必须是Required, RequiresNew, Mandatory中的一种。
(2)服务提供方Controller必须添加@Compensable注解,不允许对Feign/Ribbon/RestTemplate等HTTP请求自行进行封装。想想看为什么?
(3)在每个参与tcc事务的数据库中创建bytejta表。

