@GlobalTransactional分布式事务seata使⽤
@Transactional在我们的开发中因为分布式原因,这个事务的接⼝已经不能够满⾜我们使⽤了,所以我们需要使⽤@GlobalTransactional 注解来实现⼀个分布式事务。
具体的业务就是,我们⾃⼰有⼀个事务管理,当我们的业务在保存的时候出现问题,我们单据就会回滚,不会保存,然后我们会调⽤流程平台的代码(也就是Activiti),然后问题出现了,在调⽤的时候出现了问题,流程没有取到数据,我们因为因为出错所以就回滚了,但是Activiti捕捉了这个异常,并且成功发起的流程,这就导致了单据显⽰在⽤户的我发起的和代办中,我们就换⼀个注解实现全局事务GlobalTransactional。
⾸先分布式事务需要先有⼀个seata,俺也不是很懂,就是⼀个阿⾥的中间件,具体的⽂件我⼀会上传资源,然后这是中的截图
⾥⾯有⼏个⽂件夹,⾸先我们需要去修改conf配置⽂件,然后去bin⽂件夹启动这个,然后配置⽂件需要更改的是
修改eureka⾥⾯的地址修改成你配置⽂件⾥⾯配置的eureka地址然后去bin⽂件夹⾥⾯启动⼀下
然后去启动⼀下这个东西
然后启动⼀下这个东西
这样的话seata就配置并且启动成功了。
然后是具体项⽬的配置,
在f中修改这个位置为配置⽂件中
eureka {
springboot aopserviceUrl ="admin:admin@172.31.0.36:8765/eureka"
application ="default"
weight ="1"
}
在f⾥⾯修改内容
service {
#transaction service group mapping
#only support pe=file, please don't set multiple addresses
#degrade, current not support
enableDegrade =false
#disable seata
disableGlobalTransaction =false
}
然后添加注解就可以使⽤了,要是没有启动seata但是添加了GlobalTransactional注解就会报错
class ller.ReimBillingBillController保存失败----{}
ption.FrameworkException: No available service
at pcty.AbstractRpcRemotingClient.loadBalance(AbstractRpcRemotingClient.java:194)
at pcty.AbstractRpcRemotingClient.sendMsgWithResponse(AbstractRpcRemotingClient.java:140) at pcty.AbstractRpcRemotingClient.sendMsgWithResponse(AbstractRpcRemotingClient.java:148) at DefaultTransactionManager.syncCall(DefaultTransactionManager.java:95)
at DefaultTransactionManager.begin(DefaultTransactionManager.java:53)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论