SpringCloud:分布式事务Seata实践优化

news/2024/10/19 5:28:19/

1.极致性能优化

1.1. 同库模式

通常,一个TM会产生一笔主事务日志,一个RM会产生一条分支事务日志,每个分布式事务由一个TM和若干 RM组成,一个分布式事务总共会有1+N条事务日志(NRM个数)。

在默认情况下,分布式事务执行过程中客户端将事务日志发送给服务端,服务端再将事务日志存储至数据库中,一条事务日志的存储链路会有 2 次TCP,分别是“客户端到服务端”和“服务端到数据库”, 我们称这种模式为异库模式。

在异库模式下,分布式事务存储事务日志总共需要2*(1+N)次左右的TCP通信。在RM数量较少的业务场景下,分布式事务性能还能接收,但有些业务场景下RM数量较多,此时事务内TCP数量也会增多,分布式事务性能急剧下降。

在这里插入图片描述

在事务执行过程中,客户端和服务端进行通信的目的是为了存储事务日志。如果客户端在存储事务日志时,绕过服务端直接将事务日志写入数据库(如上图“同库模式”所示),那么一笔事务日志的存储链路就由原来的 2 次TCP变成只需访问一次数据库便可,每条事务日志的存储减少了一次TCP通信,整个分布式事务就减少了N+2TCP请求,分布式事务的性能大幅提升。我们将客户端直接将事务日志存储至数据库的模式称为同库模式。

1.2 二阶段异步执行

通常情况下,分布式事务发起方会依次执行一阶段和二阶段方法,然后结束分布式事务,返回结果。如果让分布式事务发起方执行完一阶段之后马上结束并返回结果,二阶段交由独立的线程或者进程异步执行,这样分布式事务的二阶段会晚几秒钟或者若干分钟执行,但事务的最终结果不会有任何改变。

二阶段异步执行之后,分布式事务的最终结果不会有任何影响,但是事务发起方要执行的内容减少一半(一阶段和二阶段都执行变成只执行一阶段),直观的用户感受是分布式事务的性能提升了 50%。

在这里插入图片描述

2. 分布式事务高可用

为了保障金融系统的高可用,分布式事务服务必须达到 99.99% 的可用率。分布式事务使用了蚂蚁金服的三地五中心架构部署,在每个机房都独立部署分布式事务服务,分布式事务服务是无状态的,而底层数据库副本在各机房间也是双向同步,这样业务流量从一个机房切到另外一个机房,分布式事务服务不会对业务有任何影响,从而保证了分布式事务服务的高可用。

在这里插入图片描述


http://www.ppmy.cn/news/433151.html

相关文章

discuz_result

命名 discuz_result3856604,答题注册插件用不了,3140844 3852724,最新版墨镜风格模板发布了,有需要的朋友可以进来看看,2759280 3856589,官方手机模板在哪安装,3140684 3856347,手机触摸屏被劫持跳转其它网站,3112842 3856562,终于知道DZ官网为什么没落了,3112900 …

小米手机风筝守护显示服务器异常,风筝守护只能小米用吗

风筝守护只可以在小米手机上使用,它是小米特有的APP,其作用是守护老人、孩子的安全和健康,可以实时的定位家人的位置,并引导他们正确使用手机。风筝守护除了可以在小米手机上用之外,还可以在小米平板上使用&#xff0c…

5.20爬虫结——Mu

3852724,最新版墨镜风格模板发布了,有需要的朋友可以进来看看,2759280 3856589,官方手机模板在哪安装,3140684 3856347,手机触摸屏被劫持跳转其它网站,3112842 3856562,终于知道DZ官网为什么没落了,3112900 3856535,主题自带的二级导航怎么修改啊,2578089 3856505,以…

隐私协议授权访问的实现

目录 交互逻辑隐私协议的实现初始化隐私协议隐私协议确认弹窗再次确认弹窗隐私政策&用户协议界面用户协议界面隐私政策界面隐私协议的文档 授权访问的实现初始化授权访问授权访问工具类 隐私协议&授权访问的示例项目 交互逻辑 用户首次下载打开apk,先弹出用…

外勤365显示服务器忙,外勤365产品培训FAQ.pdf

员工的随身工具领导的管理助手 外勤人员精细化管理工具 外勤365产品培训 常见问题 http:// . 问题一 、网络请求失败、界面转圈 出现网络请求失败原因: 1.网络不稳定或者比较差 2.是否限制外勤365软件 3.后台很多其它软件在使用网络 处理方法: 1.换接入点…

刷机时代落幕——刷机现状、原理及方法步骤

本文讨论目前刷机现状以及一些原理。谨以此文纪念曾经一起搞机的小伙伴们。 刷机的兴起与盛行 说实话,刷机风靡手机市场的年代,是最精彩,最值得令人怀念的时代。2010年Google发布Android2.3版本,此时刷机开始逐渐兴起&#xff0c…

RabbitMq学习笔记

RabbitMq学习笔记 1.消息队列1.1 MQ相关概念1.1.1 什么是MQ?1.1.2 为什么要用MQ?1.2.3 MQ的分类1.2.4 MQ的选择1.2.5 为什么选择RabbitMQ? 1.2.5 MQ对比分析图在这里插入图片描述1.2 RabbitMQ1.2.1. RabbitMQ 的概念1.2.2. 四大核心概念1.2.3…

View体系之四大组件——Service详解

View体系之四大组件——Service详解 在学习Service之前,我们先提出以下几个问题: 1、什么是Service?Service的作用是什么? 2、Service有哪几种状态,其生命周期是什么? 3、Service如何使用?&…