开发者社区 > 云原生 > 中间件 > 正文

请问seata推荐的store模式是db吗?这个性能还是有些影响的,有没有用redis模式的呢?

请问seata推荐的store模式是db吗?这个性能还是有些影响的,有没有用redis模式的呢?用redis的时候,有事务丢失的风险,是说因为各种问题造成redis命令执行失败,造成数据丢失是吗?db有点慢,加上global注解后,接口相应时间,增加了1s多点,是因为我们环境的问题吗?

展开
收起
fuxixi 2022-10-08 15:15:38 765 0
1 条回答
写回答
取消 提交回答
  • 假设发到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 开源讨论群”

    2022-10-08 16:08:48
    赞同 展开评论 打赏

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

相关电子书

更多
ApsaraDB for Redis——与创客同行 立即下载
微博的Redis定制之路 立即下载
《Seata 1.3 新特性以及如何参与社区》 立即下载