为啥说分布式事务不再适用于微服务架构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥说分布式事务不再适用于微服务架构相关的知识,希望对你有一定的参考价值。
楼主这个说法很标准,不是不可用,只是不适用。我们看下为什么分布式事务不再适用于微服务架构。多个微服务应用就构成了分布式系统,由此会带来固有的复杂性。开发者需要在RPC或者消息传递之间选择并完成进程间通讯机制。更甚于,他们必须写代码来处理消息传递中速度过慢或者不可用等局部失效问题。当然这并不是什么难事,但相对于单体式应用中通过语言层级的方法或者进程调用,微服务下这种技术显得更复杂一些。
另外一个关于微服务的挑战来自于分区的数据库架构。商业交易中同时给多个业务分主体更新消息很普遍。这种交易对于单体式应用来说很容易,因为只有一个数据库。在微服务架构应用中,需要更新不同服务所使用的不同的数据库。使用分布式交易并不一定是好的选择,不仅仅是因为CAP理论,还因为今天高扩展性的NoSQL数据库和消息传递中间件并不支持这一需求。最终你不得不使用一个最终一致性的方法,从而对开发者提出了更高的要求和挑战。
部署一个微服务应用也很复杂,一个分布式应用只需要简单在复杂均衡器后面部署各自的服务器就好了。每个应用实例是需要配置诸如数据库和消息中间件等基础服务。相对比,一个微服务应用一般由大批服务构成。例如,根据Adrian Cockcroft,Hailo有160个不同服务构成,NetFlix有大约600个服务。每个服务都有多个实例。这就造成许多需要配置、部署、扩展和监控的部分,除此之外,你还需要完成一个服务发现机制,以用来发现与它通讯服务的地址(包括服务器地址和端口)。传统的解决问题办法不能用于解决这么复杂的问题。接续而来,成功部署一个微服务应用需要开发者有足够的控制部署方法,并高度自动化。
总而言之,一句话概括,由于每个微服务实现方式五花八门,当微服务多了情况下,一个服务流程可能会涉及多个服务,如果这些微服务耦合过于强,那必然要确保其事务的一致性,但是这是个及其困难的事情。 参考技术A 传统应用使用本地事务和分布式事务保证数据一致性,但是在微服务架构中数据都是服务私有的,需要通过服务提供的API来访问,所以分布式事务不再适用微服务架构。
28套分布式架构视频教程!总有你想要的!
报名及领取资料请添加小姐姐微信
(还有惊喜小礼物赠送哦)
授课老师很厉害么
擅长领域:系统架构设计,大数据,运维、机器学习、技术管理等领域。
通过此次课程,你将收获
训练营开营前,小助手会将您拉入《百万架构师魔鬼训练营》中,您有任何技术问题,都可以在群里咨询,会有资深技术老师解答;也会在群中举行抽奖活动~如有打扰,可选择屏蔽~
原价值599元的资料免费送!企业级微服务/数据中台架构设计与实践干货系列,共28个视频资料免费送!!限时领取!
扫码领取原价599元资料包/28个学习视频
企业级微服务/数据中台架构设计与实践
往期训练营学员都说好!!
截止现在,训练营活动已有超过万人学习了,帮到很多人,好评如潮,我随手截了一些图:
上下滚动查看更多
报名及领取资料请添加小姐姐微信
学好分布式事务,吊打大厂面试官,当形成自己的思维方法论和独立的学习技巧的时候,任何技术对于你来说也不过是几天时间就能把玩的很好的玩具,即使写了n年代码,头也不会秃,哈哈
以上是关于为啥说分布式事务不再适用于微服务架构的主要内容,如果未能解决你的问题,请参考以下文章