微服务是近几年流行起来的软件架构风格。回顾历史,从传统的单体应用架构,到面向服务架构SOA,再到今天逐渐被大众接受的微服务架构MSA,本质上来说,都是为了解决随着软件复杂度的上升,如何有效提升开发效率、发布效率的问题。
同样,这个问题在阿里巴巴电商系统的发展历程中也遇到过。由于业务体量巨大、需求变更频繁,导致淘宝和淘宝商城(天猫的前身)的研发效率变得低下,在这个背景下,2008年10月立项了著名的“五彩石”项目,对电商系统做了系统的拆分,完成了服务化改造。通过这个项目,孕育出了以HSF、Notify 为代表的分布式中间件组件。并且,在随后的十年中,分布式中间件蓬勃发展,从软负载中心Config Server、 配置中心Diamond Server, 到全链路追踪EagleEye、限流Sentincel,再到全链路压测体系,可以说,基于分布式中间件构建的整个服务化体系是支撑“双11”GMV从2009年的5000万元到今天惊人的2135亿元的技术基石。正是服务化改造的成功实施和不断演进,为每年万亿流量的洪峰及层出不穷的大促玩法保驾护航了有10个年头。
即使是在选择了微服务架构之后,也会面临技术栈选型的问题,从国内广泛使用的Apache Dubbo,到国际上的Spring Cloud, JavaEE Micoprofile领域的JBoss Wildfly, 再到最近开始提出的Cloud Native MicroServices,选择并成功实施其中的一种技术栈,成为广大架构师们挠头的事情。好在现在由8位阿里大牛合著的:《高可用可伸缩微服务架构》,从微服务基础介绍起,横向地比较了三种有代表性的微服务架构选型,探讨了微服务架构中后期需要解决的事务、网关、服务编排、高可用等高级话题,并深入分享了实