本书以高可用服务架构为主题,侧重于讲解高可用架构设计的核心要点:可伸缩和可扩展,从应用层、数据库、缓存、消息队列、大数据查询系统、分布式定时任务调度系统、微服务等层面详细讲解如何设计可伸缩、可扩展的框架,并给出在各个领域解决特定问题的方法论和实践总结。随着本书的出版,我们还开源了4个行之有效的互联网可伸缩框架,包括数据库分库分表dbsplit、缓存分片redic、专业的发号器vesta和消息队列处理机框架kclient,每个框架都开箱即用,也可以作为学习互联网平台化框架搭建的素材,更可以作为开发开源项目的示例。
本书的上册《分布式服务架构:原理、设计与实战》详细介绍了如何解决线上高并发服务的一致性、高性能、高可用、敏捷等痛点,本书与上册结合后可覆盖保证线上高并发服务的各个主题:一致性、高性能、高可用、可伸缩、可扩展、敏捷性等,每个主题都是一个方法论。充分理解这些主题,可保障线上服务健壮运行,对实现服务稳定性的n个9有着不可估量的作用。
无论是对于互联网的或者传统的软件工程师、测试工程师、架构师,还是对于深耕于IT的其他管理人员,本书都有很强的借鉴性和参考价值,是值得每个技术人员阅读的架构级技术书。
? 云时代架构系列经典!重磅级架构书2018年开炸!
? 详解高可用架构设计的核心要点:可伸缩与可扩展
? 详解分布式发号器、消息队列框架、数据库分库分表、缓存、Elasticsearch、分布式调度任务、RPC服务、Dubbo、高性能网络代理中间件等
? 全面破解可伸缩服务架构的奥秘
? 分布式服务架构:原理、设计与实战读者的配套技能升级架构书。
前 言
本书的上册《分布式服务架构:原理、设计与实战》详细介绍了如何解决线上高并发服务的一致性、高性能、高可用、敏捷等痛点。本书延续了高可用服务架构的主题,侧重于讲解高可用架构设计的核心要点:可伸缩和可扩展,从应用层、数据库、缓存、消息队列、大数据查询系统、分布式定时任务调度系统、微服务等层面详细讲解如何设计可伸缩、可扩展的框架,并给出在各个领域解决特定问题的方法论和实践总结。随着本书的出版,我们还开源了4个行之有效的互联网可伸缩框架,包括数据库分库分表dbsplit、缓存分片redic、专业的发号器vesta和消息队列处理机框架kclient,每个框架都开箱即用,且都是独立的互联网高并发框架,是构建互联网级项目的重要组件,也可以作为学习互联网平台化框架搭建的素材,更可以作为开发开源项目的示例。
在写作本书的过程中,我们的多位作者根据自身在互联网大规模、高并发项目中遇到的实际问题,总结了切实有效的方法论和解决方案,最后沉淀出一套适合高并发服务的优秀开源技术框架,其中的方法论可以帮助读者解决实际问题,开源框架可以帮助读者快速搭建可伸缩的互联网高并发项目。无论是对于互联网的或者传统的软件工程师、测试工程师、架构师,还是对于深耕于IT的其他管理人员,本书都有很强的借鉴性和参考价值,是值得每个技术人员阅读的架构级技术书。
感谢我的作者团队,杨彪、海亮、刘淏、博岩等无数次地与我一起通宵达旦地赶稿子;感谢汪勤平、史先斌、潘运鹏、张诚、高亮、李继、周伟、曲源等同学在编辑阶段为我阅稿,并提出专业意见;感谢IT行业内的重量级大咖焦英俊、杨延峰、右军(于君泽)在百忙之中抽出时间为本书作序;也感谢大作者开涛和安晓辉等同学为本书写评语;感谢各个行业的重量级朋友们对本书的大力支持,包括:冯沁原、贺伟、张义明、马星光、高春东、黄福伟、李雪冰、付红雷等;更感谢加入云时代架构技术社区的小伙伴们的持续关注和支持!
在写书的过程中,我们每个人都兢兢业业、勤勤恳恳,每增加一部分内容,都互相审核,尽量保证书中案例的准确性和时效性,确保能为读者带来很有价值的设计经验,并且我们想做到“授人以渔”,而不是“授人以鱼”。在写作的过程中有辛苦、有快乐、有价值、有成果,我们希望能持续地为读者带来经验、解决方案、架构思路和快乐。
感谢电子工业出版社博文视点张国霞编辑的认真态度和辛勤工作,本书在经过作者们及国霞编辑大半年的努力后最终顺利出版。
最后,感谢我的妻子和父母在我写书期间对我的全力支持和帮助。
李艳鹏
2018年3月
推荐序一
从传统互联网到移动互联网再到物联网,中国乃至全球的互联网技术在近十年得到了高速发展。作为架构师,我们非常乐意把这些技术传播出去,让更多的人享受互联网技术的红利,让技术拓展商业的边界。阿里巴巴的双11技术已经越来越成熟,因为阿里巴巴已经逐步具备了基于云的计算能力,可以轻松应对各种业务压力。
本书的内容包括缓存分片、消息队列框架、数据库分库分表、分布式发号器、大数据查询系统、分布式定时调度任务系统、微服务和RPC等;并配备了4个开箱即用的开源项目,包括分库分表框架dbsplit、专业的发号器vesta、消息队列框架kclient和缓存分片的redic,每个项目都是独立的互联网高并发框架,是构建互联网级项目的重要组件。本书对行业内许多流行的开源项目也有很多介绍,读者可以在其中学到平台架构设计的方方面面,也可以了解开源项目在构思和实现方面的优秀实践。
互联网的技术核心其实源于分布式,这是互联网具备高性能、高并发特性的基础,掌握这些核心内容后,你会发现驾驭技术变得如此轻松!希望艳鹏的这本书可以带领大家掌握分布式的精髓,这本书非常棒!也感谢艳鹏邀请我为本书作序!
技术的世界是如此美妙,作为一名深耕架构的技术人,我由衷地希望有更多的人加入,一起为中国的技术添砖加瓦!
焦英俊
未达科技CEO、原阿里巴巴中文站首席架构师
推荐序二
近十年来,互联网服务在社交网络、搜索、电商、O2O、视频、移动和云计算等领域呈现了井喷式发展,伴随而来的是数千万的日订单量、数亿的日活跃用户、数百亿的日消息发送量等海量的业务规模。支撑这些海量的业务规模的则是基于廉价服务器集群的高可用、可伸缩的分布式互联网技术。
本书以可伸缩服务架构为重点,从理论基础、架构设计、一线行业的实践经验和代码实现细节等方面,系统化地介绍了分布式互联网的高可用、可伸缩技术的核心要点,是一本兼具深度和广度的技术参考书。
虽然本书的主题是“架构”,但是这并不影响本书的易读性,它比大多数同类书都要讲得透彻、明白,也适合有想法、有目标的初中级开发人员阅读。分库分表、Dubbo 源码解析等方面的内容,更可以帮助高级技术人员提升自己的技术实力,以及发挥更大的价值。
架构是在长期的生产活动中经过深度思考所积累下来的优秀实践和可复用的合理抽象,希望你不要错过本书的精彩内容。
杨延峰
开心网副总裁
推荐序三
杨彪兄弟找我为本书写序,我欣然从命。我阅读了这本佳作的若干个章节,发现它有几个特点:紧扣常见的问题域;结合了开源产品;代码很讲究。这里,我想谈一谈开源与写作的关系,因为我觉得这就是一场修行。
什么是开源?我的粗浅理解就是,开源就是开源产品,是开放了源代码的产品。我从业16年,用过不少开源产品,但发现被广泛使用的项目并不都拥有好的代码和充分的测试用例,可见知易行难。可喜的是,国人的开源产品在逐渐增多,也有不少好作品出现,艳鹏的vesta-id-generator解决的就是分布式系统中常见的ID生成问题。
古人谈学习有“眼到”、“手到”、“心到”之说。
“眼到”指的是阅读,但阅读面广并不见得知识就是自己的,例如一个早晚听张靓颖歌曲的粉丝不见得就能发出海豚音。
“手到”指的是要不断练习,当然,这并不是指简单、重复地练习。佛罗里达州立大学心理学家K. Anders Ericsson首次提出了“刻意练习”的概念,该练习方法的核心假设是:专家级水平是逐渐练出来的,而有效进步的关键在于找到一系列小任务让受训者按顺序完成,这些小任务必须是受训者正好不会做但又可以学习和掌握的。
我认为,“心到”的一个环节是写作。写作能帮我们把脉络梳理得更通畅。从自己懂,到给别人讲明白,再到写出来且别人还能明白,是进阶的关系。
所以,从项目产品实践,到开源,再到写作,就是一场修行。修行是外在的表现、是与同行交流、是与世界对话;修行也是内观,是收获若干思想的结晶、汲取若干灵感的泉水、沉淀若干系统的对白,在其中收获更多的就是作者自己。
开卷有益,愿读者也能在阅读和实践上收获知与行的快乐!
于君泽
蚂蚁金服高级技术专家
githud应为github
本章最后给出了一个客户端缓存分片框 架应为本章最后给出了一个客户端缓存分片框架
代码块倒数第三行throws Exception