《深入理解分布式事务》推荐序

2023-03-23 16:53:29 浏览数 (1)

1

无论使用什么样的开发语言,无论软件运行在何种操作系统,无论架构采用了单体应用架构,还是分布式的微服务架构,只要我们开发复杂的交易型业务系统,必然有一个技术话题无法绕开,那就是困扰诸多开发人员的技术障碍——事务。

我常说,要观察一门技术是否具有热度,只要统计一番坊间技术书籍的书目,就可轻易获得一个虽不科学却极为准确的结论。

君不见,微服务架构、云原生架构、业务中台、数据中台,在这几年不都成为了出版行业的宠儿?更不用说因为机器学习与神经网络的火热,使得Python书籍满天飞;Spring框架老而弥坚,导致讲解Spring相关技术的书几乎汗牛充栋;少儿编程因为纳入了教育体系,让介绍Scratch的书也慢慢飞了起来;……然则,事务作为影响业务系统高质量开发的关键技术,为何它却落得“门前冷落鞍马稀”呢?

许多技术作者在创作技术书籍时,不管是讲解架构模式与设计模式,还是介绍一种软件开发方法与理论,抑或剖析业界与社区主流的开发框架,大多会留下一定篇幅介绍事务这一概念,由此可见它的重要性与复杂度;奇怪的是,就我所知,整个技术社区却一直没有一本专门致力于讲解事务的书籍出现。

实在是因为事务知识既广且深。

广,体现在它的应用场景——本地事务、分布式事务;XA与强一致性、最终一致性与柔性事务;至于说数据库选型对事务的影响,业务场景对事务框架选型的影响,更是不一而足,纷乱而复杂,难以详述!

深,体现在它的知识难度,既要掌握事务的基础理论,又要掌握各种类型数据库的事务理论,同时还包括锁、并发、日志、消息传递、分布式网络通信等方方面面的知识。

这些知识的叠加对作者提出了极高技术素养的要求,没有在事务领域浸淫多年,真刀真枪写过底层事务框架,谁敢啃这么一块硬骨头?

2

作为一名业务系统的架构师和程序员,我对事务的认识可谓一知半解,俗称“半碗水”。虽然在我的著作中,也曾拿出相当篇幅详细介绍了事务的相关知识,但是很惭愧,实则我并未建立对事务的系统认知。究其原因,源于我对事务知识的获取皆来自散落于各种书籍与文章中的片言只语,就好似海滩拾贝,偶有所得,却不曾拥有整片海滩。

幸运的是,肖宇看到了技术书籍领域的这一关键空白,携手他的朋友共同创作了本书,不仅为我们推开了俯瞰大海的一面窗户,只要你愿意细细品读,你会发现他们甚至将整片海滩也完整地奉献给了读者。

3

本书可谓事务尤其是分布式事务的集大成者。

书中首先介绍了事务的基本概念与理论知识、MySQL事务的基础理论与实现原理、Spring事务的实现原理。

在夯实这些基础知识后,进而向分布式事务迈进,相继介绍了分布式架构的演进、分布式事务场景与分布式事务理论知识。

在读者具备了足够的事务知识后,作者陆续抛出干货,相当深入地介绍和分析了强一致性与最终一致性分布式事务的解决方案,高屋建瓴地剖析与总结了各种分布式事务模式的原理,将XA强一致性、TCC、可靠消息、最大努力通知型等事务模式一网打尽,各种技术知识精彩纷呈,真可以说是如山阴道上行,原理与模式自相映发,使人应接不暇。

即便如此,作者尤嫌不足,进一步祭出源码分析的大杀器,先后对ShardingSphere、Atomikos、Narayana、Hmily-TCC等框架的源码进行剖析,并在此基础上给出了实战演练的案例。

4

本书知识结构的安排,篇章内容的层层递进,体现了作者的匠心独运,也充分证明了作者的事务知识已经烂熟于胸,因而下笔才能游刃有余。——何以证明?

看看本书介绍的分布式事务框架,再看看作者肖宇的履历。他是Apache ShardingSphere Committer,Hmily、Raincat、Myth等分布式事务框架的作者,毫不夸张地说,事务这门技能已经融入到他的技术血液中了!本书的另一位作者冰河,也是深耕分布式事务领域多年的高级技术专家和资深架构师。

倘若你对国内开源社区有所关注和了解,一定不会忽略最近几年dromara.org开源社区的影响力,而肖宇作为该社区的创始人,正在默默地为推动中国开源技术的发展贡献自己的力量。肖宇还是微服务网关shenyu框架的创始人,在他的努力下,该框架目前已经成功进入Apache基金会的incubating阶段。

我认真拜读过shenyu框架的源代码,窃以为该框架的代码质量与设计质量能够在众多开源框架中名列前茅。肖宇在开源方面亦然取得了如此斐然的成绩,没想到他还笔耕不辍,携手冰河,历经近两年的时间为大家贡献了如此具有深度的技术书籍。

5

很荣幸,受肖宇兄所邀为本书的出版摇旗呐喊。我的呐喊并非同行圈里的互相吹捧,而是出自真心的赞赏。

我已经能够预见:随着本书的出版,必定会吸引越来越多的同行将自己的关注目标投向事务,并愿意沉下心去理解事务,认真地学习事务,努力掌握事务编写的技巧,进而熟练地运用事务,从而将事务抬到一个更高的地位,甚至可能让事务成为yyds,永远的神!——是为推荐序。

《解构领域驱动设计》作者 张逸

0 人点赞