请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师您好,涉及到微服务的话,请问有比较好的办法做分布式的事物吗?

对分布式事物的一致性一直是一个问题,比如一个系统中,a来修改,b来观察修改

在单独架构的系统中,也就是隔离级别就可以解决,但是对于分布式的情况,好像没有啥特别好的办法

使用统一的事物管理中心虽说可以解决一部分问题,但是针对于同一次修改不同微服务数据的情况,却不能很好的支持,比如修改中部分事物失败,却因一些问题(网络,或者数据出错)无法回滚,亦或者是在修改过程中,有另外的人来观察数据。

请问老师,这种的情况有啥比较好的解决方式吗?

正在回答 回答被采纳积分+3

1回答

大目 2022-01-13 17:55:58

seata 可以了解一下
不过我建议更多场景下不做分布式事务
因为99%的请求是正常的,做了分布式事务后,却有100%的请求性能下降…这笔生意不太划算。

我建议不做分布式事务,出问题人工补偿。

0 回复 有任何疑惑可以回复我~
  • 提问者 mhigo #1
    唔,确实是这样,但是在一些情况下,会出现问题,在之前的经历中,每次大促都会出现订单的账对不上的情况,如果对一组业务和数据加锁会影响性能,但是不加又会影响核账等等,就会很难受。。。
    回复 有任何疑惑可以回复我~ 2022-01-13 19:23:00
  • 大目 回复 提问者 mhigo #2
    哈哈 不管怎样都难受的
    
    上分布式事务 -> 吞吐量下降严重 -> 需要做很多性能优化
    不上分布式事务 -> 遇到问题可能需要一些精力去人工处理
    
    所以我们当时是本地记录执行日志,然后在定时任务冲正,自动玩的,不过这个成本说实话也很高。。。但好处是,释放了多数人力成本,一般不需要人工介入了;另外对性能影响不是很大
    
    算是做了一个取舍,达到了一个平衡吧。
    回复 有任何疑惑可以回复我~ 2022-01-14 17:56:52
  • 提问者 mhigo 回复 大目 #3
    请问老师可以再稍微具体的讲讲流程吗?因为之前遇到很难受,就有些纠结,一开始我是打算使用elk加监控的方式,定时统计订单,但是似乎对事物也就只能睁一只眼闭一只眼了,尤其之前618这种大促的时候,在峰值时确实会产生不合适的数据
    回复 有任何疑惑可以回复我~ 2022-01-17 15:18:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信