Spring Cloud 微服务开发:入门、进阶与源码剖析 —— 14.1 分布式事务概述-程序员宅基地

技术标签: Spring Cloud 微服务开发:入门、进阶与源码剖析  

14.1 分布式事务概述

在构建微服务的过程中,不管是使用什么框架、组件来构建,都绕不开一个问题,跨服务的业务操作如何保持数据一致性。

14.1.1 什么是分布式事务?

首先,设想一个传统的单体应用,无论多少内部调用,最后终归是在同一个数据库上进行操作来完成一向业务操作,如图14-1:

图14-1

随着业务量的发展,业务需求和架构发生了巨大的变化,整体架构由原来的单体应用逐渐拆分成为了微服务,原来的3个服务被从一个单体架构上拆开了,成为了3个独立的服务,分别使用独立的数据源,也不在之前共享同一个数据源了,具体的业务将由三个服务的调用来完成,如图14-2:

图14-2

此时,每一个服务的内部数据一致性仍然有本地事务来保证。但是面对整个业务流程上的事务应该如何保证呢?这就是在微服务架

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/meteor_93/article/details/105470043

智能推荐

Android涂鸦画板原理详解——从初级到高级(二)-程序员宅基地

文章浏览阅读995次。前言前面写了《Android涂鸦画板原理详解——从初级到高级(一)》,讲了涂鸦原理初级和中级的应用,现在讲解高级应用。如果没有看过前面一篇文章的同学,建议先去看看哈。准备高级涂鸦涉及到图片操作,包括对图片进行缩放移动、涂鸦等,这里涉及到矩阵的变换。关于矩阵变换的知识,请查看我的另一篇文章《浅谈矩阵变换——Matrix》。根据文中的介绍,接下来使用变换坐标系的空间想象去理解涂鸦中涉及到的矩阵变..._电子涂鸦板原理

python中数字加引号和不加引号的区别_Python小白不得不注意的几点:单引号、双引号、三个单引号和三个双引号区别!...-程序员宅基地

文章浏览阅读6.3k次。一、单引号和双引号在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如str1 = 'python'str2 = "python"str1和str2是没有任何区别的。但是如果遇到需要转义字符的情况,来看单引号和双引号的版本。单引号版本:str3 = 'We all know that \'A\' and \'B\' are two capital letters.'双引号版本:s..._python中数字加引号和不加引号的区别

蓝桥杯 历届真题 立方和问题【决赛】【本科组】_蓝桥杯立方和-程序员宅基地

文章浏览阅读390次。关键是怎么去掉重复,将答案都保存在一个数组中,排序,新数据存入后与数组中已存在的数据比较,若都相同,则重复,将元素从数组中移除,不相同,保留,最后输出该数组。a = 1,b=12,c=9,d=10 就是一个解。因为:1的立方加12的立方等于1729,而9的立方加10的立方也等于1729。你的任务是:找到所有小于30的不同的正整数解。a、b、c、d是互不相同的小于30的正整数。因为是小于30的整数,用暴力法不会炸,用四重循环,再加上判断条件。当然,a=12,b=1,c=9,d=10 显然也是解。_蓝桥杯立方和

openssh aix_获取最新版本的OpenSSH for AIX-程序员宅基地

文章浏览阅读1.5k次。什么是开放安全壳? Open Secure Shell(OpenSSH)是网络连接工具SSH协议套件的开源版本。 这些工具提供经过身份验证和加密的外壳程序功能。 Shell是命令语言解释器,可从命令行字符串,stdin或文件中读取输入。 为什么要使用OpenSSH? 在不安全的公共网络(如Internet)上运行时,可以使用SSH命令套件而不是不安全的命令telnet,f​​tp和r命令。..._aix最新版ssh

不会真有人觉得聊天机器人难吧-程序员宅基地

文章浏览阅读483次,点赞3次,收藏3次。本系列会基于自己实现的类Pytorch工具实现一个Seq2Seq 带Attention机制的聊天机器人,在本系列文章中,大家会了解到实现聊天机器人的所有知识,以及如何实现一个类似PyTorch一样的深度学习框架。欢迎关注哦。

Java学习路线_自动机理论、语言和计算导论 site:csdn.net-程序员宅基地

文章浏览阅读923次。前提条件: 需要有高中毕业的水准 (或者同等学历的也行,比如中专,我本人就是读中专然后再读自考大专的)。学习方式: 完全可以自学,最好自己有电脑。偏重方向: 偏重软件,而不是计算机硬件。英语要求: 掌握3000个左右的常用单词,能读就差不多了, 如果不想看英文可以找中文翻译版的,我个人偏向看中文,对于非常好的书我通常中英文都买来看。以下列出的书是按照循序渐进的方式介绍的, _自动机理论、语言和计算导论 site:csdn.net

随便推点

Java中时间戳转换日期_java时间戳转日期-程序员宅基地

文章浏览阅读1.4w次,点赞5次,收藏12次。String value="79898768";//时间戳String date=stampToDate(value);//时间戳转换日期//时间戳转换日期方法public static String stampToDate(String value) { String res; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long lt = new Long(valu._java时间戳转日期

ios-微信自动抢红包插件-程序员宅基地

文章浏览阅读976次。2019独角兽企业重金招聘Python工程师标准>>> ..._csdn ios微信抢红包

Flutter列表和表格的综合运用_flutter多行合并表格布局-程序员宅基地

文章浏览阅读807次,点赞2次,收藏2次。最近Flutter项目中遇到一个比较有意思的页面,页面稍显复杂,考验的是列表和表格的综合运用,感觉有必要总结一下。自己粗糙绘制了一下原型,大致要求如下:页面可上下滑动点击Tab标题时,Tab栏下方区域页面进行切换,且Tab栏滑动到顶部也就是紧挨着标题栏下方时,悬浮在顶部,用户再次向上滑动时,Tab下方页面进行上滑,而Tab栏固定不变Tab栏下方页面为表格数据,有多少..._flutter多行合并表格布局

github -ubuntu 首次git clone 代码错误Please make sure you have the correct access rights and the repositor-程序员宅基地

文章浏览阅读1.2k次。首次从github git clone 代码到ubuntu本机中, 若出现以下错误:joaquin@vmachine:/home$ sudo git clone [email protected]:jasgooddy/distributed-saving-.git[sudo] password for joaquin: Cloning into 'distributed-sa

【IntelliJ IDEA工具】spring boot使用JPA自动生成实体类(数据库表逆向工程自动生成带注释的实体类)_springdatajpa逆向生成实体类-程序员宅基地

文章浏览阅读1.2k次。1、maven依赖: <!-- JPA,用于自动生成表结构 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> &_springdatajpa逆向生成实体类

TMDS_tmds解码程序-程序员宅基地

文章浏览阅读1.4k次。module vdc_encode( rst, clk, de, d, c0, c1, q_out); input rst; input clk; input de, c0, c1; input[7:0] d; output reg[9:0] q_out; reg[9:0] q_m;..._tmds解码程序

推荐文章

热门文章

相关标签