为什么说传统分布式事务不再适用于微服务架构?

36大数据

文 | 朱江

传统应用使用本地事务和分布式事务保证数据一致性,但是在微服务架构中数据都是服务私有的,需要通过服务提供的API来访问,所以分布式事务不再适用微服务架构。那么微服务架构又该如何保证数据一致性呢?本文就来谈谈这个话题。

传统分布式事务不是微服务中数据一致性的最佳选择

微服务架构中应满足数据最终一致性原则

微服务架构实现最终一致性的三种模式

对账是最后的终极防线

传统分布式事务

我们先来看下第一部分,传统使用本地事务和分布式事务保证一致性。

36大数据

传统单机应用一般都会使用一个关系型数据库,好处是应用可以使用ACID。为保证一致性我们只需要:开始一个事务,改变(插入,删除,更新)很多行,然后提交事务(如果有异常时回滚事务)。更进一步,借助开发平台中的数据访问技术和框架(如 Spring),我们需要做的事情更少,只需要关注数据本身的改变。

随着组织规模不断扩大,业务量不断增长,单机应用和数据库已经不足以支持庞大的业务量和数据量,这个时候需要对应用和数据库进行拆分,这就出现了一个应用需要同时访问两个或两个以上的数据库情况。开始我们用分布式事务来保证一致性,也就是我们常说的两阶段提交协议(2PC)。

36大数据

本地事务和分布式事务现在已经非常成熟,相关介绍很丰富,此处不再讨论。我们下面来谈谈为什么分布式事务不适用于微服务架构。

36大数据

首先,对于微服务架构来说,数据访问变得更加复杂,这是因为数据都是微服务私有的,唯一可访问的方式就是通过 API。这种打包数据访问方式使得微服务之间松耦合,并且彼此之间独立,更容易进行性能扩展。

其次,不同的微服务经常使用不同的数据库。应用会产生各种不同类型的数据,关系型数据库并不一定是最佳选择。

例如,某个产生和查询字符串的应用采用 Elasticsearch 的字符搜索引擎;某个产生社交图片数据的应用可以采用图数据库,例如Neo4j。

基于微服务的应用一般都使用 SQL 和 NoSQL 结合的模式。但是这些非关系型数据大多数并不支持 2PC。

可见在微服务架构中已经不能选择分布式事务了。

最终一致性原则

依据 CAP 理论,必须在可用性(availability)和一致性(consistency)之间做出选择。如果选择提供一致性需要付出在满足一致性之前阻塞其他并发访问的代价。这可能持续一个不确定的时间,尤其是在系统已经表现出高延迟时或者网络故障导致失去连接时。

依据目前的成功经验,可用性一般是更好的选择,但是在服务和数据库之间维护数据一致性是非常根本的需求,微服务架构中应选择满足最终一致性。

最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。

当然选择了最终一致性,就要保证到最终的这段时间要在用户可接受的范围之内。那么我们怎么实现最终一致性呢?

从一致性的本质来看,是要保证在一个业务逻辑中包含的服务要么都成功,要么都失败。那我们怎么选择方向呢?保证成功还是保证失败呢?

36大数据

我们说业务模式决定了我们的选择。实现最终一致性有三种模式:可靠事件模式、业务补偿模式、TCC 模式。

可靠事件模式

可靠事件模式属于事件驱动架构,当某件重要事情发生时,例如更新一个业务实体,微服务会向消息代理发布一个事件。消息代理会向订阅事件的微服务推送事件,当订阅这些事件的微服务接收此事件时,就可以完成自己的业务,也可能会引发更多的事件发布。

1. 如订单服务创建一个待支付的订单,发布一个“创建订单”的事件。

36大数据

2. 支付服务消费“创建订单”事件,支付完成后发布一个“支付完成”事件。

36大数据

3. 订单服务消费“支付完成”事件,订单状态更新为待出库。

36大数据

从而就实现了完成的业务流程。但是这并不是一个完美的流程。

36大数据

用户喜欢...

大数据和云计算的冲突

最近,IT行业专家在参加相关会议时发现了一个隐藏的主题,那就是虽然很多人将关注的重点转移到基于云计算的架构...


智能家居为何需要大数据, 大数据在智能家居领域的贡献是什么?

大数据分为大数据存储和大数据分析,属于两种截然不同的计算机技术领域,大数据存储用于大数据分析。大数据存储重点在于研发可以扩展至PB甚至EB级别的数据存储平台;大数据分析关注在...


从“云”到“雾”:云计算将死亡,取而代之的是分布式的点对点网络

在云计算发展一片火热的时候,英国数字咨询公司Red Badger的技术主管Viktor Charypar却在VentureBeat上发文表示,云服务将...


陆金所计葵生:深度解析大数据和AI对未来金融影响

陆金所联席董事长兼CEO计葵生在北京大学数字金融研究中心「数字金融的中国时代」第二届年会上发表主题演讲,深...


利用FPGA实现无线分布式采集系统设计(下)

随着FPGA等可编程逻辑器件的发展,为无线数据可靠传输提供了很好的实现平台。采用FPGA作为时序控制和信号处理的处...


大数据时代:十大最热门的大数据技术

随着大数据分析市场快速渗透到各行各业,哪些大数据技术是刚需?哪些技术有极大的潜在价值?根据弗雷斯特研究公司发布的指数,这里给出最热的十个大数据技术。 1、预测分析 预测分析是...


利用FPGA实现无线分布式采集系统设计 (上)

随着FPGA等可编程逻辑器件的发展,为无线数据可靠传输提供了很好的实现平台。采用FPGA作为时序控制和信号处理的处...


乐橙视频云锁闪耀发布,让家与你不再有距离

大华乐橙在深圳会展中心召开了2017 “锁定天下”乐橙智能锁新品发布会,重磅发布了乐橙首款视频云锁。本次发布会...


Nutanix通过Cloudera Enterprise认证,携手打造精简大数据企业云

企业云计算领导者Nutanix今日在2017 .NEXT用户大会(北京站)上宣布,其企业云平台软件已通过Cloudera技术认证计划(...


超过300亿美元的工业级无人机市场将呈爆发式增长, 上海无人机展会引领行业发展

当消费级无人机市场已成为一片红海之际,各大无人机厂商都在工业级无人机领域发力以争夺高端行业应用的市场,...


浪潮与百度联合发布ABC一体机 推进智慧计算的行业落地

在9月举办的2017 百度云智峰会 ABC SUMMIT 上,百度与浪潮共同发布了 ABC 一体机,双方将共同推动人工智能、大数据、云...


IDC发布《IDC MarketScape:中国大数据管理平台厂商评估,2017》

中国大数据市场整体热度逐步降低,数据应用开始落地,而应用的前提是建设统一的大数据管理平台。IDC调研了几十...


中科院国科创新与深圳福田区一揽子战略合作落子于CEEC

北京国科金服科技金融信息服务有限公司(以下称“国科金服”)与中国国际消费电子展示交易中心(以下称“CEEC”...


CA Technologies宣布为IBM z14提供支持交付可信任的系统

CA Technologies (NASDAQ:CA)今日宣布,CA关键的大型主机解决方案为IBM z14提供支持。CA的解决方案利用全新的z14平台,大大降...


大数据新时代:物联网让生活更加智慧

物联网(IoT,Internet of Things)这一概念最早在1999年提出。美国麻省理工学院建立的“自动识别中心(Auto-ID)”,首次提出“万物皆可通过网络互联”,并阐明物联网的基本含义。早期的物联网仅是...


飞博盖德与微米光学公司合作生产光纤布拉格光栅光学传感器

来自美国的特种光纤和组件生产厂家——飞博盖德(www.fiberguide.com.cn)与传感器生产厂家 -- 美国微米光学国际公司(...