请问seata推荐的store模式是db吗?这个性能还是有些影响的,有没有用redis模式的呢?用redis的时候,有事务丢失的风险,是说因为各种问题造成redis命令执行失败,造成数据丢失是吗?db有点慢,加上global注解后,接口相应时间,增加了1s多点,是因为我们环境的问题吗?
假设发到redis,redis宕机了,比如我拿到锁对吧,再插入个分支事务,这俩不是一个命令,锁的执行被aof持久了,分支事务没有,导致锁就留在那了,数据会错乱。当然概率低嘛,你们决定能承受的话可以切到redis。可以算一次大概多了几次网络io,1次begin 1次rpc到tc,tc到mysql写一条事务记录,1次commit,at会select两次次mysql读取全局事务和分支事务,再update一次改为asynccommitting,一个rm会注册至少1次,再没有全局锁竞争时,就是1次select 查询锁,一次insert插入锁,再一次insert插入分支事务,期间多了多少次网络io开销,多少次磁盘io开销,可以看下。如果存在锁竞争,也就是这个锁再被其他的事务持有,那么就是N次select 查询锁和N次rpc到tc。此答案整理自钉钉群“3群-Seata 开源讨论群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。