本书结合实际的生产实践,分别对网关、平台开放、分布式、MQ、RPC、I/O、微服务、容错的内容做了详细介绍。其中的内容不限于概念,而是会下沉到实践背后的感悟与总结。比如本书详细阐述了网关系统是如何“抗量”,又是如何容错的,以及在每次大促中的备战经验。其他内容也是如此,基于实践,源于实践,比如微服务的实战案例、MQ的各种功能场景、消息推送的实践等讲的皆是实践之道。希望读者可以通过本书了解互联网常用架构知识背后的原理及解决问题之道。
书中介绍的网关、分布式、MQ等知识背后的原理,对于每一位互联网研发人员都有很大的参考意义。
本书内容包括分布式、开放网关、消息推送、RPC、MQ、容错、微服务本身之外的思考、开放平台、互联网场景问题定位与分析等内容。描述每个知识点的各种使用或者适用场景。以及每个场景下可能遇到的问题,以及这种技术我们为什么要使用它及它背后的一些道理。本书还会讲述一些在京东内部已经良好实践的技术应用。
前言
本书的主书名叫作“架构修炼之道”,当提到“道”的时候,我们通常会想起孔子、孟子,或者想起国外一些“大神”写的技术书籍,因此使用该书名可谓十分大胆。但实际想来,“实践是检验真理的唯一标准”,本书中的“道”,就是被检验过的真理、道理,是最普通、最真实的道理。本书还有一个副标题,“亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践”,书中对于这些技术的描述都是我在工作过程中通过反复实践得到的总结和感悟。同时,工作中我们敬畏每一行代码,敬畏每一次线上生产事故,每次大促备战我们都怀着一颗敬畏之心,这些年来在京东的架构实践无疑就是一场修炼。这正是本书名字的由来。
在京东转眼已五年时光,经历过的系统有的已经发生了从千万级、十亿级到百亿级的转变,我对系统如何“抗量”有深刻的切身体会,这些知识在网关之道、I/O之道章节中都有介绍。当我们抗住亿级访问量的时候,系统的容错又是怎样实施的?比如线程池的隔离、快速失败机制的运用等容错知识在容错之道章节中有重点详解。另外本书也讲解了分布式、微服务的知识,在微服务之道一章中,并没有过多叙述微服务的概念,而是直接将工作过程中亲身经历的两个微服务案例给读者呈现出来。这是一本从实践中总结出来的书,读者阅读的时候会发现,书中介绍概念性的东西只是作为切入点,转而迅速去讲解实践的感悟,然后深入某个知识领域去做一次深度探索,比如解读I/O多路复用技术、解读Tomcat中的NIO模型、解读一次RPC调用时间都去哪儿了、详述MQ各种功能场景等,这些内容都是经过实践得出的真知。
本书共10章,第1章网关之道讲述网关的前世今生,以及一个成熟的网关应该具备的能力;第2章开放之道主要在网关的基础上围绕API展开介绍;第3章分布式之道重点介绍常见的事务、锁、限流场景下的知识;第4章MQ之道从基础一直介绍到MQ的常用功能场景;第5章消息推送之道以HTTP和TCP的方式分别介绍生产系统中消息推送的实践;第6章RPC之道着重从RPC的底层原理去思考分析;第7章I/O之道深度解析多路复用技术和Tomcat中的NIO模型;第8章微服务之道以我亲历的两个实践为案例介绍微服务是如何落地的;第9章容错之道结合前面章节的知识重点讲述系统容错的常用方法,以及我所在公司在大促备战中常用的技术;第10章程序之外,我结合自己的真实感受讲述健身锻炼跟程序之间的感悟,以及程序员的硬件装备等内容。相信本书的知识一定可以帮助到读者。
从自己开始写博客的那天起,我便喜欢上了写作,将自己总结的东西发布到技术社区网站上,随后又被网站推荐到首页,再后来又被很多公众号转载。能在互联网这个大环境里与素未谋面的朋友交流,这些经历给我带来了很大的喜悦感与成就感。但写博客终归跟写书不一样,在写博客的时候如有读者留言指正,还可以迅速修改,但写成的书一旦描述不当却是“覆水难收”,写书需要更严谨,因此对自己的要求更加严格。虽然可以用“人非圣贤,孰能无过”为自己开脱,但还是生怕出错会误导读者,古人云“尽信书不如无书”,希望读者可以带着自己的思考阅读本书。
能够完成本书,首先要感谢博文视点的晓猛,没有您就没有这本书。还要感谢京东给我提供了这么好的平台和机会,没有在京东的历练,我也就没有这么丰富的技术阅历来完成本书的写作。感谢我的领导与同事,也感谢我的团队,你们给了我很大的帮助。经常看其他作者的前言,看到最后感谢家人环节的时候总是很有感触,但真正到了自己要写出这番话的时候,才体会到了这份感谢的重量。非常感谢我的爱人,是你全身心照顾我们的儿子,才让我有了足够的业余时间来完成写作,在这期间我很少陪伴你和儿子,对此深感愧疚与歉意。最后要感谢我的父母,是你们养育了我,又辛苦劳作供我读书,点亮了我的生活。
王新栋
2019年1月于北京
现在要把 API通网关 这里的通字删除
接口提供方的系统开放平台本身并不能保证其稳定性
改为:开放平台本身并不能保证接口提供方的系统的稳定性