本书全面介绍了分布式服务架构的原理与设计,并结合作者在实施微服务架构过程中的实践经验,总结了保障线上服务健康、可靠的最佳方案,是一本架构级、实战型的重量级著作。
全书以分布式服务架构的设计与实现为主线,由浅入深地介绍了分布式服务架构的方方面面,主要包括理论和实践两部分。理论上,首先介绍了服务架构的背景,以及从服务化架构到微服务架构的演化;然后提出了保证分布式服务系统架构一致性的方案和模式,并介绍了互联网架构评审的方法论;最后给出了一个简要的非功能质量的技术评审提纲。实践上,首先提供了一个互联网项目的性能和容量评估的真实案例,介绍了压测的方案设计和最佳实践,这些技术能够全面保证大规模、高并发项目的一致性、可用性和高并发性;然后讲解了大规模服务的日志系统的原理、设计与实践,包括ELK等框架的特点和使用方式等,并介绍了当前流行的APM系统的设计与实现,主要包括调用链和业务链的跟踪与恢复,涵盖了线上应急和技术攻关的流程及重点,也结合服务化系统线上应急过程进行分析并总结了其中需要用到的Java虚拟机、Linux和定制化脚本等命令,这些命令都是每个开发人员都会用到的解决线上问题的利器;最后,阐述了系统服务的容器化过程,并详细介绍了敏捷开发流程和实现自动化的常用工具等,让读者既能学到架构设计的基础理论,也能结合书中的原理、设计与方法论来解决大规模、高并发互联网项目中的现实问题。
无论是对于软件工程师、测试工程师、运维工程师、软件架构师、技术经理、技术总监,还是对于资深IT人士来说,本书都有很强的借鉴性和参考价值。
分布式、架构、一致性、高性能、高可用、高并发、微服务、容器化、敏捷开发和敏捷上线、Java
李艳鹏
现任易宝支付产品中心首席架构师,曾在花旗银行、甲骨文、路透社、新浪微博等大型IT互联网公司担任技术负责人和架构师,现专注于大规模、高并发的线上和线下支付平台的应用架构和技术架构的规划与落地,负责交易、支付、渠道、出款、风控、对账等核心支付系统的设计与实现,对移动支付、聚合支付、合规账户、扫码支付、标记化支付等业务场景有产品应用架构规划与落地的实践经验。
杨 彪
现任某创业公司技术总监及合伙人,在互联网和游戏行业有近10年工作经验,曾在酷我音乐盒、人人游戏和掌趣科技等上市公司担任核心研发职位,在互联网公司做过日活跃用户量达千万的项目,也在游戏公司做过多款月流水千万以上的游戏。喜欢研究问题,追求前沿技术,学无止境。
推荐序一
经过艳鹏多年的实践经验积累及长时间的精心准备,本书终于与大家见面了,笔者很荣幸能够成为本书的首批读者。
随着时代的不断发展,分布式服务架构日益流行,已经从SOA服务化发展到了微服务架构。有过惊喜,有过质疑,但这未能阻挡分布式服务架构在互联网行业里的普遍应用。然而,事物总是有两面性的,丰富的新框架及新技术层出不穷,给项目的技术决策者带来了技术选型上的困难。此外,在互联网交易越来越复杂、规模越来越庞大的背景下,解决分布式服务间的事务问题、业务一致性问题、可用性问题、稳定性问题等的困难以指数级增加。
本书以一位在IT行业从事多年分布式服务架构工作的资深老兵的视角,剖析了针对分布式系统架构的解决方案和设计模式。书中的每一章、每一节都是作者对多年线上系统架构设计实践的总结。
此外,有别于市面上的其他架构书籍,本书在讲解基础理论和方法论的基础上,提供了大量的实际操作和详尽的开发命令解析,读者可以直接把书中的方法和案例应用到实际工作中。
如果你想成为一名优秀的高并发服务架构师,那么本书将为你提供实践指引;如果你在大规模、高并发交易系统中遇到问题,那么本书将为你提供解决这些问题的理论与实践,令你脑洞大开,轻松解决问题!
姚建东
易宝支付产品VP
推荐序二
本书作者艳鹏和杨彪秉着“开放、分享”的态度,将在互联网高并发服务建设过程中总结的经验、设计模式和最佳实践整理成书。本书内容涉及分布式服务架构的原理、设计与实战,不但介绍了微服务的背景,还介绍了服务化的演进历史,并详细介绍了保证一致性、高性能、高可用性的解决方案,重点讲解了建设大数据日志系统和调用链跟踪系统等内容。大数据日志系统和调用链跟踪系统是每一个微服务体系都应该包含的核心基础设施,为服务的稳定性、可用性提供了有效保证,为在应急和技术攻关过程中发现问题、定位问题和恢复问题提供了有效帮助。
本书逐一介绍分布式微服务系统架构设计的核心要点,对重点主题提供了代码、设计文档和开源项目,每个主题独立成章,且相关代码可应用于实际项目中。通过阅读本书,读者不但可以了解大规模分布式微服务系统是怎么设计的,也可以学到实际服务化项目中的设计模式及最佳实践,可大大提高互联网项目的实施效率。
分布式服务架构涉及的面很广且难以列举,涉及架构方法论、设计模式、如何快速入门纷繁庞杂的技术栈、如何对方案进行选型、如何定位和解决问题,等等。笔者也曾面试过许多候选者,其中,能利用所了解的知识较好地解决问题的人不多,能利用当前流行的技术对复杂问题进行技术选型并给出合理架构方案的人更是凤毛麟角。
笔者曾在Google、乐视等互联网企业工作,作为一名持续创业者,曾想将自己从业以来的项目开发经验、问题追踪、技术选型等积累成文字,为给更多的开发者提供参考,使其少走弯路,但一直碍于各种琐事未能成行。当艳鹏将书稿呈现在笔者面前并让笔者为本书作序时,笔者惊喜万分。本书作者有着多年的一线互联网开发经验,根据自己的实际生产经验,将微服务、分布式系统、一致性、性能与容量评估、大数据日志分析系统、调用链系统、容器等结合一些生动、实用的案例进行了全面介绍,对一些项目敏捷开发和技术选型也给出了自己的经验,同时对日常运维手段也进行了分享。本书虽然篇幅不大但实用性很强,能够指导实际互联网架构的设计与实现。本书主题明确、浅显易懂,适合初学者和有一定经验的开发者和架构师阅读和使用。
于立柱
福佑卡车CTO
推荐序三
本书作者杨彪和艳鹏都是笔者认识多年的老朋友,笔者见证了他们从勤奋青年到老成持重、独当一面,从一线的核心开发人员到架构师再到技术经理和技术总监,从传统IT行业到互联网行业的心路历程。
笔者在近几年面试过很多人,发现了一些有意思的现象:很多自称架构师的人在同你讲架构时可谓滔滔不绝,各种技术名词像说相声一样从其嘴中说出来,但是你稍微追问一下,就会发现其存在很多基本概念的缺失,例如自称精通高并发的人说不出其所谓的高并发瓶颈在哪里,自称能够开发高可用和高性能系统的人说不出高可用和高性能的衡量标准是什么,并且其所谓的大数据处理系统实际上只有百万条数据,等等。
架构师虽然听起来和工程师没有太大区别,技术经理和技术总监也都会对核心技术有所把控,但本质上架构师要引领技术的发展,用技术服务于业务,为业务产生价值,更通俗地说,架构师需要让技术变现,为客户赚取更多的利润,或者为客户节省更多的成本,因此,架构师任重而道远。在互联网高速发展的今天,如何成为一名优秀的架构师是一个值得研究的课题,本书正是为那些已经成为架构师或者即将成为架构师的人准备的一本好书。作为第一批阅读本书的读者,笔者惊叹于本书中的内容如此丰富,囊括了保证互联网线上高并发服务的方方面面,不仅包括分布式服务的背景和演化,还包括保证分布式服务化系统一致性、高性能、高可用的方法论和最佳实践,而这些正是每一个互联网公司都需要探索和应用的理论和方法。笔者推荐每一名互联网架构师都阅读本书,相信你一定能从中学到自己急需的技术、方案和方法。
本书作者有从花旗银行、甲骨文等知名外企到新浪微博、易宝支付等大型互联网平台,从传统的核心行业到火热的游戏行业,从社交产品到金融支付产品等方方面面的工作经验,既深刻了解传统行业的系统规范、流程和功能的复杂性,又深谙互联网行业的高性能、可用性、高并发、可伸缩等高级特性。本书涉及的分布式服务架构原理、设计和实战,皆来自于作者在实际工作中提炼的精华,从理论到落地,皆言之有物。无论是对于软件工程师、测试工程师、运维工程师、软件架构师、技术经理、技术总监,还是对于资深IT人士来说,本书都极具参考价值。
杨延峰
开心网副总裁
前言
自互联网诞生以来,其简单、敏捷的微服务架构开发理念和实践逐渐成为主流,在逐渐发展的环境下和技术演化的过程中,迅速突破互联网行业并波及软件行业的各个领域。然而,这种突飞猛进的表面下却是龙鱼混杂、泥沙俱下。一方面,很多人在这个信息爆炸的时代应对海量信息的处理能力比较有限;另一方面,也有人致力于将优秀的理论和实践相结合,希望运用所学的高效解决方案应对越来越复杂的问题。不论对与错,人类对技术进步的追求从未停歇。
毋庸置疑,IT行业的发展进入了一个加速分化的时代,将优秀的解决方案推向大众的成本和速度将成为决定企业生存与否的关键因素之一。优秀的互联网企业已装备精良并持续优化,而那些还需不断进步的企业也在互相竞争。尽管在这个信息量巨大的媒体时代,部分优秀的企业在应对分布式服务架构时已经有了更多的认识且技术越来越完善,但也有很多快速发展的企业在变得更优秀这条道路上任重而道远。
很多非常优秀的开发人员和架构师能成为给公司带来长远利益的人,在变革的节点上推波助澜。本书将带你走进分布式服务架构的世界,在这个世界里不停探索和汲取经验。领先于别人是一种要求,这也是很多公司赢得先机的关键所在,无论服务于IT的哪个领域,每个IT人都有理由重视架构这门艺术。希望本书对于软件工程师、测试工程师、软件架构师及深耕于IT行业的老兵来说,都能带给其所期望的内容,并帮助其解决和发现问题,也能帮助其不断探索。
本书以当前流行的分布式服务架构为主线,讲解了分布式服务架构的原理、设计与实践。本书首先介绍了分布式服务架构的背景和演化,然后深入阐述了保证分布式服务的一致性、高性能、高可用性等的设计思想和可实施的方案;然后介绍了大规模、高并发线上服务的应急流程和技术攻关过程,并给出了发现和定位问题的有效、常用工具集;最后详细介绍了分布式服务架构中容器化过程分析、敏捷开发和上线的工具,为从事高并发服务架构的开发人员提供了保障系统健康运行的方法论和最佳实践。
感谢电子工业出版社张国霞编辑的认真态度和辛勤工作,使得本书能够最终顺利完成。
感谢笔者的技术小伙伴贾博岩提供了日志相关的资料和示例,让笔者能够快速完成第4章大数据日志系统方面的内容。
感谢张晓辉、周伟、霍勇同学在编辑阶段参与阅稿,并提出专业的意见。
感谢英语专业的高材生曹燕琴小同学在文字上提供的帮助。
最后,感谢笔者的家人和朋友在本书写作过程中提供的支持和帮助。
李艳鹏
读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
? 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
? 交流互动:在页面下方读者评论处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/31578
错别字,p46.不是资深是自身(严重削弱了JDK自身技术)
本书(2017年8月第一版)第五页有几处用词不合理


“始作俑者”是贬义词,在这里是不合理的,
“控制翻转”应该是“控制反转”。
P68页,2补偿模式,第三行,”后者取消”应为”或者取消”,错别字。
6.5中的LINUX脚本能提供下载么?