程超 梁桂钊 秦金卫 方志斌 张逸 杜琪 殷琦 肖冠宇 著
今天,我告诉大家一个好消息,我和几个好朋友的新书 《高可用可伸缩微服务架构:基于 Dubbo、 Spring Cloud 和 Service Mesh》 正式预售啦。全书分 14 章,共 528 页。
历时近一年半的书即将出版了,我内心的激动难以言表。除了感谢写作团队,还要感谢编辑陈晓猛对我们的不断鼓励和大力支持。最后,大家基于共同的对微服务架构技术的热爱和乐于分享知识经验的精神,我们把微服务架构领域的各类知识,以及自己平常的经验和积累做了完整的梳理和总结,凝结为这样一本技术书,作为 2019 年的一份礼物呈现给大家,欢迎大家共同探讨和交流。
01
内容简介
近年来微服务架构已经成为大规模分布式架构的主流技术,越来越多的公司已经或开始转型为微服务架构。本书不以某一种微服务框架的使用为主题,而是对整个微服务生态进行系统性的讲解,并结合工作中的大量实战案例为读者呈现一本读完即可实际上手应用的工具书。
书中的理论部分介绍了微服务架构的发展历程,通俗地讲解了领域驱动设计,帮助读者更好地利用DDD 来建模和划分服务;微服务稳定性保证的常用手段和微服务下如何保证事务的一致性这两章凝聚了作者多年的积累和思考,相信读者看完后会有不一样的感触和收获;书中实战部分的内容非常丰富,以项目为基础,逐层介绍常见的 Dubbo、Spring Cloud 和 Service Mesh 框架的具体使用方法,并对实现原理进行剖析;书中还以具体案例全面介绍了微服务双活体系建设、微服务监控与告警、微服务编排、百亿流量微服务网关的设计与实现,以及基于支付场景下的微服务改造等,并让读者了解如何借助微服务来增强和重构现有的遗留系统。
不管是刚接触微服务的新手,还是正在尝试借助微服务解放生产力的开发人员或运维人员,甚至是立志于构建高可用可伸缩的微服务体系的技术 Leader 和架构师,阅读本书,对读者必有裨益。
02
专家评价
经历了系统从单体架构到 ESB 企业总线架构,再到全面的微服务化架构的整个改造过程,深知微服务看似美好,但在企业中落地实施其实是一件很困难的事情,本书不仅从理论高度上阐述了微服务架构,也有丰富的可操作的实践案例,涉及服务划分、框架选型、服务治理,尤其是当前流行的服务网格,恰如我们在微服务架构改造过程的真实写照,相信大家也会从本书中获得微服务最佳实践的灵感和方向。
王明华(北京多来点信息技术有限公司 CTO)
分而治之、高内聚、松耦合等是软件开发领域的高频词汇,现阶段,代表这类思路的热门架构方法非微服务莫属。恰如武术中的“见招拆招”,把各种变招加以拆解和演练,才能理解招式,若干招式组成套路,再结合时间、空间、身体结构,灵活运用,最终做到“拳无定势”。本书帮你拆解微服务奥秘,从实战角度带你领略目前构建微服务的几种主要工具,结合案例,细细道来,值得开发人员学习。
曹中胜(海康威视开发总监)
本书围绕微服务架构高可用方面进行深度剖析,从实战角度对微服务相关技术进行讲解,教会我们如何轻松搭建可伸缩的微服务架构,以及所需要的基础知识和技能,对一线架构师的工作有着非常大的指导意义。作者程超对微服务架构理解透彻,功力深厚,强烈向各位技术同行们推荐这本书!
黄勇(《架构探险》作者)
本书从微服务和领域驱动开发的角度阐述高可用和可伸缩架构,知识点覆盖全面。书籍由 多名一线互联网资深人员联合出品,体现了现代技术书籍的合作共赢的模式。各位作者取长补短,将最好的内容呈现至读者面前。在架构类的书层出不穷的当今,本书特点鲜明,是我眼中的优秀书籍,推荐读者品读。
张亮(京东数科数据研发负责人,
Apache ShardingSphere 发起人& PPMC,
《未来架构——从服务化到云原生》作者 )
“微服务”早已成为广大“码农”们的聊天必备佳品,可每每深入“微服务架构在具体实践中是怎样实施的?微服务架构在实施过程中存在怎样的困难和挑战?服务以什么原则拆分?拆分成什么样的颗粒度才算微?如何选型?”等一类的话题时,大家往往会三缄其口或乏善可陈。作者将自身多年的一线项目实践经验以文字形式将微服务的原理到项目实践应用深入浅出地完整呈现出来,同时通过案例对微服务架构实施过程中存在问题及解决方法进行了总结,对于想快速学习、应用微服务架构的读者来说是不可多得之作。
曾波(波姐,鹏博士电信传媒集团 OTT 业务技术负责人)
微服务(MicroServices)定义较早见于 Martin Fowler 的著作和博客中,但在此之前,有几家公司早已开始了微服务的实践探索,并建立了具备相当规模和影响力的产品,例如,阿里巴巴开源的 Dubbo。而秦金卫正是在这一阶段任职于阿里巴巴,从事微服务相关的研发工作。最近几年,微服务领域的基础软件层出不穷,由开源社区或一些大公司主导的方案都逐渐成熟,然而,却也给微服务方案的选型带来一些不便。本书结合常见的微服务产品,在服务研发、性能优化、监控、管理甚至遗留系统改造方面都做了全面的介绍,非常值得一读。
宓学强(陌陌前技术主管,淘宝微服务框架负责人)
微服务架构对大型分布式后端的改造和优化非常有帮助,但是它并不容易实现,搞不好就会事倍功半。本书理论与实践相结合,介绍了时下流行的 Dubbo、Spring Cloud、容器化等技术,以及实践经验,对于想了解微服务技术的你是一个不错的选择。
付磊(《Redis 开发与运维》作者)
微服务这两年的热度持续不减,支持这种理念的中间件、开发框架等产品也不断迭代演进,我们可以运用的武器越来越多,但是这也使得技术人员在学习与选择上增加了不少的难度。本 书基于实战,从架构的本质,微服务设计的原则到各环节重要技术点的分析等环节做了详细的思路讲解。其中也涵盖了目前最流行的一些框架与产品,紧跟时代的步伐,所以我推荐想要深入了解微服务架构全貌的读者阅读此书。
翟永超(公众号“程序猿 DD”、
《Spring Cloud 微服务实战》作者)
很高兴看到《高可用可伸缩微服务架构》一书问世,作者老师们是社区挚友,多年以来致力于技术架构研究与落地,本书集合了技术大咖精华,结合业界最佳实践,展示微服务架构精华,是技术架构师们不可或缺的工具书。
王友强(中生代技术社区发起人)
微服务架构时下不断升温,如何针对自己当前业务场景进行微服务架构改造变得迫在眉睫,若同时还要兼顾高可用性、可伸缩性,这就要求架构师们具备庞大的技术体系,且不说容器化、DevOps、微服务监控和网关,光是核心的服务治理学习曲线就异常陡峭,这本书无疑如久旱甘霖,值得大家细细品读。
兰小伟(《Solr 权威指南》作者)
本书深入浅出地讲解了微服务架构的理论与设计方法,并聚焦高可用和可伸缩这两大特性,详细分析了实现这两大特性需要关注的方向,包括高可用、高并发、分布式事务等。而且介绍和分析了微服务实践中使用的一系列基础组件,包括远程过程调用、网关、服务编排等。本书还通过具体的业务场景——支付场景来介绍如何在具体业务中实践高可用、可伸缩的微服务架构。非常值得阅读。
韦韬晟(Apache Dubbo Committer,
某互联网金融公司架构师)
本书系统解答了 IT 企业在服务演进主线过程中,在微服务化技术升级和服务迁移过程中的一些核心节点的关键痛点问题。最终让服务演进成基于领域建模,高可用、可伸缩的微服务架构,从而在技术层面解决当前一些大型企业和一些独角兽企业遇到的服务化进程推进之痛,强烈建议大家阅读学习。
徐凌云(新华网在线教育平台技术负责人,
京东云网关研发负责人)
微服务架构对于金融行业从“稳态”到“敏态”的数字化转型意义非凡,极大提升业务系统的可用性、扩展性和应变能力。作者基于一线实战项目,深入浅出介绍微服务架构的各种技术细节。此刻此书,恰逢甘霖,给大家提供了一个学习微服务的捷径。
胡晓磊(华为金融行业解决方案专家)
想知道怎样建立起微服务架构的完整思维吗?我觉得你应该看看这本书。它勾勒出微服务架构的编程思想和原理,介绍了微服务架构实例,让我们对微服务架构的认识变得立体、系统起来。并且深入浅出、通俗易懂,既具有精炼的微服务架构之道,又包含精彩具象的实践代码。不论初学编程的菜鸟,还是经验丰富的大牛,都值得一读。
周智勇(融贯电商高级研发总监)
本书阶梯指引读者深入微服务框架,满满的都是干货,从架构发展历程引入微服务架构,通过与最近炙热的领域驱动设计(DDD)结合碰撞出“感情火花”把架构设计讲得通俗易懂,加上各个框架实现原理的深入解读,让读者无论对框架还是微服务架构都有了更深刻的理解,再结合实际项目的实战部分,让微服务架构更加清晰地呈现在脑海里。是一本通俗易懂的微服务架构工具书,非常值得拥有。
杨进京(美团金融技术专家)
本书覆盖了微服务的方方面面——微服务理论、拆分依据、开发框架、稳定性保障、分布式事务、监控、微服务编排、重构乃至性能优化,甚至目前火热的“Service Mesh”均有覆盖。很难想象一本书竟然能介绍这么庞大的技术体系,而且还能无缝地承接。阅读本书,能让您对微服务的完整生态有一个相对完整的认识,对于想快速了解并应用微服务构建系统的读者来说是一部不可多得之作。
周立(《Spring Cloud 与 Docker 微服务架构实战》作者)
本书从微服务架构概念开始,指出微服务的业务领域模型设计。重点讲了微服务设计的重点和痛点:性能优化、监控、一致性、可用性等。既有理论依据、设计心得,又有工程实施方 案;既有应用框架源码分析,又有自动化运维工具介绍。各位作者都是在金融和电商等行业一 线出来的资深人员,内容深入浅出,是讲述微服务的一本不可多得的好书。
王欣(Apache Dubbo PPMC)
时至今日,无论大型互联网公司还是创业型公司,大家越来越多地选择微服务架构。众所周知,实现微服务架构是非常困难的,本书从理论到实践阐述了如何搭建高可用可伸缩的微服务系统。这本书不单单介绍常用的 Apache Dubbo、Spring Cloud 等框架的使用,更重要的是告诉读者使用微服务架构所遇到的常见问题及解决方案,是一本诚意十足和干货满满的书。
沈哲(《RxJava 2.x 实战》作者,
爱回收创新业务部技术专家)
几位熟悉的朋友合著的这本书我觉得担得起两个字“干货”,既有 Dubbo、Spring Cloud,还有最近讨论比较多的 Service Mesh,关注案例的朋友重点看一下支付平台、遗留系统改造等章节。赠人玫瑰、手有余香,感谢诸位为微服务原创图书再添佳作。如果说遗憾的话,就是读完意犹未尽,期待续篇。
于君泽(《深入分布式缓存》联合作者)
我和本书作者程超在多年前相识于技术中,他的踏实、认真、对技术的孜孜不倦的精神给我留下了深刻的印象,我们惺惺相惜、相见恨晚。微服务架构是这些年非常火的名词,不论是阿里等巨型互联网公司还是中小型企业,微服务均承载了大量的商业系统。本书紧密围绕微服务架构,通过 DDD、Dubbo、Spring Cloud、网关、监控、稳定性等维度全方位地展示了如何将微服务架构做到高可用、可伸缩。本书内容丰富,对于体系化的思考和认知微服务系统的架构,有着非常重要的参考价值。
朱政科(《HikariCP 实战》作者)
本书涉及微服务架构的众多方面,且每个章节都很『干』。虽说是关于微服务,但书中所讲的概念和模式,绝不仅仅是针对微服务,不管是经验丰富的程序员,还是初出茅庐的新手,都能在本书中获得所需的知识。
泽彬(阿里巴巴技术专家)
03
推荐作序
史海峰
微信公众号“IT 民工闲话”作者,
贝壳金服小微企业生态 CTO
四季有轮转,行业有冷暖,人生有起落,智慧可传承。本书的作者全部来自行业一线,具有相当丰富的微服务实战经验,更难得的是倾囊相授,总结最新案例结集成册,分享给业界同仁。互联网行业竞争激烈,技术日新月异,唯有持续学习成长,方能保持核心竞争力,在职业道路上站得稳走得远。传道授业解惑皆为我师,此行当以同怀报之。
天行健,君子以自强不息;地势坤,君子以厚德载物。赞几位作者老师,并与诸君共勉!
罗毅(北纬)
阿里巴巴高级技术专家
Apache Dubbo 负责人
很荣幸在 Apache Dubbo 准备从阿帕奇软件基金会毕业并成为顶级项目之际,应本书作者之一,也是 Apache Dubbo PPMC 之一的秦金卫先生的邀请来为本书作序。在今年 Apache Dubbo 的规划中,云原生微服务是路线图中的重点。也以此序与诸位读者共勉,期望 Apache Dubbo 能够成为各位在架构选型中重点考虑的一环。
04
作者阵容
程超
网名小程故事多,现任某公司高级架构师,超过 12 年的 Java 研发经验,8 年技术管理和架构经验,熟悉支付和电商领域,擅长微服务生态建设和运维监控,对 Dubbo、Spring Cloud 和 gRPC 等微服务框架有深入研究,帮助多家公司进行过微服务建设和改造。合著作品《深入分布式缓存》,阿里云 MVP、云栖社区外部专家、Codingfly 社区特聘技术专家、CSDN 博主专家。
梁桂钊
现任某互联网公司高级开发工程师,参与过内容分发、K12 教育、淘系电商等项目。目前,专注于新零售电商服务的业务摸索和电商服务创新实践。具有 Java 核心技术、微服务、分布式、高并发等领域一线实战经验,并对新兴技术方向和各种开源框架有浓厚兴趣。公众号「服务端思维」的作者。
秦金卫(KimmKing)
现任某公司高级技术总监/Apache Dubbo PPMC,阿里前架构师/某商业银行北京研发中心负责人。关注互联网、电商、金融、支付、区块链等领域,10 多年研发管理和架构经验,对于中间件、SOA、微服务,以及各种开源技术非常热衷,活跃于 Dubbo、Fastjson、Mule、ActiveMQ 等多个开源社区。个人博客 http://kimmking.github.io。
方志斌
现任某物联网公司高级研发工程师。目前专注于大型物联网平台架构的设计与开发工作。对于微服务、分布式、集群有一定的研究和实战经验。对 Java 领域的开源框架有浓厚的兴趣,喜欢深入分析、总结框架源码。SpringForAll 社区核心成员,组织多次社区技术专题、问答等活动。
张逸
架构编码实践者,微服务架构设计者,领域驱动设计布道师,大数据平台架构师。著译作包括《软件设计精要与模式》《恰如其分的软件架构》《人件》等。个人微信公众号为「逸言」,个人博客:http://zhangyi.xyz。
杜琪
网名阿杜,现任蚂蚁金服高级研发工程师,2015 年 6 月毕业于南开大学,计算机系统结构硕士。毕业后开始接触分布式业务系统开发,曾在有赞负责用户中心基础服务,对分布式业务系统的稳定性、可靠性有丰富的经验。喜欢研究底层技术,喜欢研究疑难技术问题,例如 JVM 内存问题排查、GC 调优,等等。有对外输出分享的习惯,是公众号 javaadu 的维护者。
殷琦
网名涤生,现任“美团点评”技术专家,2015 年 3 月毕业于东华大学,软件工程硕士。2015 年 3 月加入“美团点评”基础架构部,开始接触微服务架构,之后一直从事服务框架的研发工作,对微服务架构发展与演进有非常深刻的认识。个人比较喜欢研究并分享新技术,时刻关注并实践微服务架构最前沿的技术,如 Service Mesh、Serverless 等。
肖冠宇
曾就职于小米、人民网等互联网公司,具有丰富的大数据一线实战经验,专注大数据处理技术及机器学习算法研究。著有《企业大数据处理:Spark、Druid、Flume 与 Kafka 应用实践》《Python3 快速入门与实战》等书籍。
05
目录概览
第 1 章:微服务架构概述(作者秦金卫)。
本章从软件架构的发展历程讲起,分别对单体架构、SOA 架构和微服务架构的演进过程做了深入浅出的讲解,同时深入介绍了微服务架构的特点,希望以宏观的视角为读者打开微服务的大门。
第 2 章:微服务领域驱动设计(作者张逸)。
本章介绍了领域驱动设计是什么,常见的领域架构有哪些,如何将领域驱动应用到微服务中,以及如何使用领域驱动进行合理的服务划分等,帮助读者在正式学习微服务前修炼“内功”。
第 3 章:Apache Dubbo 框架的原理与实现(作者程超)。
目前 Dubbo 已经被阿里巴巴技术团队重新维护并且得到了大力的发展和推广,使用 Dubbo 可以很好地进行微服务建设,本章较为深入地讲解了 Dubbo 的使用和技巧,以及通过时源码的深入分析能够让读者对 Dubbo 的原理实现有一个全面的认识。
第 4 章:Spring Boot/Spring Cloud 实践(作者方志斌)。
Spring Boot/Cloud 是目前较为流行的微服务框架,本章以大量的实战案例为线索,为读者讲解如何才能使用好 Spring Cloud 框架,讲解如何避免在使用过程中“踩坑”。
第 5 章:微服务稳定性保证的常用手段(作者杜琪)。
在业务发展越来越快,规模也越来越大的情况下,我们所面临的就是如何在服务越来越多的情况下保证微服务架构的稳定性,本章讲解保障稳定性的常用技巧和手段。
第 6 章:微服务下如何保证事务的一致性(作者梁桂钊)。
本章介绍了从本地事务到分布式事务的演变,深入分析了微服务在强一致性场景和最终一致性场景下的解决方案,探讨了二阶段提交协议、三阶段提交协议、TCC 模式、补偿模式、可 靠事件模式等。同时,对开源项目的分布式事务进行解读,包括 RocketMQ 和ServiceComb。
第 7 章:百亿流量微服务亿级网关的设计与实现(作者秦金卫)。
本章从百亿流量交易系统微服务网关(API Gateway)的现状和面临问题出发,阐述微服务 架构与 API 网关的关系,理顺流量网关与业务网关的脉络,分享全面的 API 网关知识与经验。
第 8 章:微服务编排(作者程超)。
本章以 Netflix Conductor 框架为核心,从框架的使用和原理的角度深入介绍了什么是微服 务编排,为微服务执行复杂的业务逻辑提供了一种新的思路。
第 9 章:微服务数据抽取与统计(作者肖冠宇)。
在微服务架构下,服务必将越来越多,在这种情况下进行数据统计和分析将变得非常困难,本章将深入讲解如何从不同服务的数据库中抽取数据到统一的大数据平台中,帮忙使用者更方便地进行数据的统计。
第 10 章:微服务双活体系建设(作者程超)。
在企业发展规模越来越大的情况下,用户对系统的稳定性要求也越来越高,那么单机房部署势必成为发展的瓶颈,本章将以实际案例出发讲解同城双活的建设。
第 11 章:基于支付场景下的微服务改造与性能优化(作者程超)。
本章从实际的案例出发,在具体的支付业务场景下,从一个新项目开始逐步讲解如何利用领域驱动划分服务,如何利用微服务框架进行服务治理,以及项目完成后怎样提升微服务架构的性能。
第 12 章:遗留系统的微服务架构改造(作者梁桂钊)。
本章介绍了遗留系统的微服务架构改造,梳理了代码分层结构的转变,提出一个新的代码分层思路来应对微服务的流行与普及,并深入思考了遗留系统的债券,深入探讨单体系统拆分服务的方法论。同时,对遗留系统的微服务架构改造的解决方案给出 9 个切实可行的核心实践思路。
第 13 章:Service Mesh 详解(作者殷琦)。
随着微服务的持续发展,下一代微服务架构已然出现,本章将深入介绍 Service Mesh 的发展历程,以及结合具体案例带领读者使用 Istio 进行具体实践。
第 14 章:微服务监控实战(作者程超)。
本章重点介绍 APM 的原理,从零开始开发 APM 监控系统,还深入介绍 Prometheus 的安装和原理,以及如何使用 Prometheus 进行监控和预警。
06
预售通道