Seata中lock_key里的数据什么场景下会有脏数据呢?

Seata中lock_key里的数据什么场景下会有脏数据呢?(历史的没有被删掉) 比如seata服务被强杀?或者业务服务被强杀? 我们昨天遇到运维批量重启服务导致lock_key没有被正常清理,后续服务频繁get global lock失败进而产生了悬挂问题,怀疑是服务是被强杀的 而不是正常重启。兜底的目的是什么呢?认为这种无用的lock数据一直留着会影响正常业务是吗?是什么场景促使这么做呢?是社区提的需求嘛还是实际考虑到了这种情况呢?got it 除了强杀seata服务还有哪些场景会导致lock脏数据残留吗?

展开
收起
fuxixi 2022-10-17 13:04:57 440 分享 版权
1 条回答
写回答
取消 提交回答
  • 强杀有几率出现的,只要有lock没branch或对应的globalsession,放心删了,高版本1.5上会在2分10秒后兜底这种情况,这种无用lock会阻塞业务正常运转,需要兜底删除,以后不要强杀进程,file模式和未来的raft模式没有这种问题,断电,事务决议时还有分支正在注册,断电其实就是强杀一个道理的,二者概率都非常低。此答案整理自钉钉群“3群-Seata开源讨论群”

    2022-10-17 14:41:39
    赞同 展开评论

为企业提供高效、稳定、易扩展的中间件产品。

收录在圈子:
+ 订阅
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
还有其他疑问?
咨询AI助理