这里详细记录下,SpringCloud框架整合byteTCC分布式事务框架的过程。...版本信息 1.SpringCloud 2.SpringBoot 3.byteTCC 1.创建company-server项目 创建一个SpringBoo web项目,先贴下完整的项目结构: ?...2.引入byteTCC依赖 SpringCloud其他依赖这里不做展示,仅展示byteTCC的依赖: org.bytesoft bytetcc-supports-springcloud...> 3.启动类注解 在启动类需要添加几个注解: package com.java4all; import org.bytesoft.bytetcc.supports.springcloud.config.SpringCloudSecondaryConfiguration
涉及provider,consumer 在2个项目中,都有个config包,下面的配置文件中,把数据库修改为自己的mysql地址。
在使用byteTCC框架0.5.0-BETA2版本时,发现一个关于@Compensable注解的问题,这里记录下: 1....: Completed initialization in 18 ms 2019-02-14 09:30:47.854 INFO 19844 --- [nio-8011-exec-2] o.b.bytetcc.CompensableCoordinator...2019-02-14 09:30:50.066 INFO 19844 --- [nio-8011-exec-5] o.b.bytetcc.CompensableTransactionImpl :...: Completed initialization in 18 ms 2019-02-14 09:30:46.974 INFO 18320 --- [nio-8012-exec-1] o.b.bytetcc.CompensableManagerImpl...2019-02-14 09:30:50.089 INFO 18320 --- [nio-8012-exec-1] o.b.bytetcc.CompensableTransactionImpl :
}catch (Exception ex){ ex.printStackTrace(); return "失败:something"; } } 但是引入byteTCC...关于这个问题的处理,请教了下byteTCC的维护者,非常耐心的回答了关于这个问题的疑问。...你可以考虑抛出一个异常啊,不过如果ByteTCC在commit/rollback处理过程中也碰到异常,以事务异常优先抛出 现在出现异常时,页面直接就这样,实际开发中,这样处理不妥啊 ?...这是ByteTCC在rollback过程中也碰到异常了,抛出的是SystemException 说错了,是在commit过程中 HTTP接口一般返回500码就能标识错误了,当然,如果你想在应用层面设置自己的业务异常码...一般而言,微服务之间很少需要这样的封装,直接以异常或者HTTP返回码更适合,只有web系统和微服务之间,可能才需要这种方式,当然也不能一概而论,主要还是看业务系统自行规划 你可以参考一下ByteTCC
https://blog.csdn.net/weixin_39800144/article/details/87697138 本文详细记录下,SpringCloud框架整合byteTCC分布式事务框架的过程...这里只展示,一个是springboot项目,引入byteTCC必备的基础步骤,不包括tcc的业务逻辑过程。...请优先确定项目使用的springboot和springcloud版本,然后选择对应的byteTCC版本进行整合,0.4.x和0.5.x整合差异较大。...2.引入byteTCC依赖 SpringCloud其他依赖这里不做展示,仅展示byteTCC的依赖,由于gitHub提供的demo中依赖较多,可能是作者在框架内部使用了很多依赖,下面的依赖,如果没有jar...--byteTCC 如果jar不冲突,建议保留,byteTCC内部可能使用了下面的各种依赖--> org.bytesoft
本文详细记录下,SpringCloud框架整合byteTCC分布式事务框架的过程。这里只展示,一个是springboot项目,引入byteTCC必备的基础步骤,和简单的tcc的业务逻辑过程。...请优先确定项目使用的springboot和springcloud版本,然后选择对应的byteTCC版本进行整合,0.4.x和0.5.x整合差异较大。...1.创建company-server项目 创建一个SpringBoo web项目,先贴下完整的项目结构: 2.引入byteTCC依赖 SpringCloud其他依赖这里不做展示,仅展示byteTCC的依赖...--byteTcc--> org.bytesoft bytetcc-supports-springcloud...下一篇:分布式事务系列–SpringCloud整合byteTCC框架0.5.x版本2
其Try实现类必须定义@Compensable注解,而Confirm、Cancel实现类则不能定义Compensable注解; 文档地址:https://github.com/liuyangming/ByteTCC
本次调研,根据github上star排名进行调研,主要调研了hmily和bytetcc两种分布式事务框架。...10、 异步confirm 和 cancel,保证数据一致性 11、 使用Guava Cache Bytetcc介绍 Bytetcc是由北京新奥集团工程师开发,是一个兼容JTA规范的基于TCC...GitHub地址:https://github.com/liuyangming/ByteTCC 特点: 1、支持Spring容器的声明式事务管理; 2、支持普通事务、TCC事务、saga事务等事务机制...Pay 200000 1573 1384 2703 3246 5815 48 11596 0 62.2 32.02 12.45 100 Cpu: DB cpu: Bytetcc...测试的代码地址: hmily:https://github.com/AresKingCarry/hmilyDemo Bytetcc:https://github.com/AresKingCarry
DisConf,Spring Cloud Config 分布式网关 F5,Ngnix+(打通Consul),ESB,Kong 分布式事务 Seata,dts,tcc-transaction,hmily,ByteTCC
TCC方案细节.png springcloud、springboot或者dubbo项目都可以使用开源框架bytetcc(https://github.com/liuyangming/ByteTCC)...来实现分布式事务 推荐一篇文章: bytetcc原理(https://www.cnblogs.com/jajian/p/10014145.html) 可靠消息最终一致性方案 实现原理如图: ?
byteTCC框架,支持两种模式,一种是TCC模式,一种是SAGA模式,二者如何选择,是一个取舍问题,没有完美方案。
另外这是一个系列文,本系列更新 TCC-Transaction ,下一个系列更新 ByteTCC 。嗨皮不?! 道友,赶紧上车,分享一波朋友圈!
社区里也有一些开源的分布式解决方案的框架,比如ByteTCC、LCN,但是这些框架没有一个权威的组织在维护,或多或少大家都有点不敢用。
Atomikos公司在商业版本事务管理器ExtremeTransactions中提供了TCC方案的实现,但是由于其是收费的,因此相应的很多的开源实现方案也就涌现出来,如:ByteTCC、Himly、TCC-transaction
目前有不少TCC开源框架,比如Hmily,ByteTCC,TCC-Transaction (我们之前用过Hmily和公司架构组自研组件) 下面以电商下单流程为例对TCC做详细阐述 流程图如下: ?...比如我们前面提到的Hmily,ByteTCC,TCC-transaction 这些框架。
,可用库存数量修改为库存剩余数量 基于TCC实现分布式事务,代码逻辑想对复杂一些,需要将原来的接口的逻辑拆分为:try,confirm ,cancel 三个接口的逻辑 基于TCC实现的分布式事务框架:ByteTCC...,tcc-transaction ByteTCC:https://github.com/liuyangming/ByteTCC tcc-transaction:https://github.com/changmingxie
分布式事务框架保证了,它会记录事务活动日志,再confirm或cancel失败后不断尝试调用confirm和cancel的逻辑,所以这里需要开发者自己保证,你的SQL是正确的 TCC分布式框架推荐:ByteTCC
如果框架不考虑幂等,事务内cc实现需要考虑幂等; 3 tcc适用场景 5.适用场景 1.强隔离性,严格一致性要求的业务; 2.执行时间较短的业务; 6.落地 后续文章,会详细介绍,如何在项目中整合落地tcc事务框架byteTcc
tcc-transaction https://github.com/changmingxie/tcc-transaction 4351 Hmily https://github.com/yu199195/hmily 2788 ByteTCC...https://github.com/liuyangming/ByteTCC 2156 EasyTransaction https://github.com/QNJR-GROUP/EasyTransaction
领取专属 10元无门槛券
手把手带您无忧上云