书籍作者:高可用架构社区 | ISBN:9787121314667 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:4218 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《高可用架构(第1卷)》由数十位一线架构师的实践与经验凝结而成,选材兼顾技术性、前瞻性与专业深度。各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。不仅架构师可以从中受益,其他IT、互联网技术从业者同样可以得到提升。
√ 星光熠熠的技术翘楚
√ 匠心独具的破局思路
√ 业界首创的一线实践
√ 千锤百炼的专题精华
推荐序1技术没有高低
高可用架构居然成书了,厚厚的一本,让人赞叹。从TimYang建立这个社群开始,我就一直参与其中,然而一切发生得如此之快,如此之自然,也是出乎意料。我想,这也是侠少约我写序的原因之一吧。
这里面有太多熟悉的朋友,确切地说,我跟他们中的大多数人都是很好的朋友。他们都乐于将自己的所知所学分享给社区,而我也每每从他们那里学到各种技术。
你可能会惊讶于本书内容的跨度之大,从业务系统到数据库,从容器到安全,从社区建设到行业观察,包罗万象。同时,讲解内容又实实在在,没有很多空话,偶有没说清楚的地方,肯定会有问答环节来补充说明。因为都是群内听讲的人提问,所以问答也非常契合主题。
这就保证了本书在特定章节上,比大多数同类书要讲得透彻、明白,适合初级人员阅读。同时,又对中高级技术人员有更大的价值。我们经常说架构师对技术的把握要有深度,也要有广度。广度从何而来,只能是读万卷书,阅千套系统积累而来。本书无疑是一个很好的素材源泉。
具体的内容我不在此赘述,相信大家仔细阅读后会收获颇丰。这里我还是介绍一下背后的这群人——这个由分享者和听众共同组成的大群体,这个称为高可用架构群的组织。
我经常讲,高可用架构这些群,像极了《一代宗师》里的金楼。因为你仔细看,技术圈就是互联网时代的武林。大家聚在这里,是因为在自己的领域里有所建树,都身怀绝技面对这个世界。所以我们会看到骄傲和拼搏,也会看到争论。因为很多人也都想着,功夫是一横一竖,站着的才有资格说话,错的,躺下。
但是幸运的是,他们找到了一种方式,来平息这种内心的躁动,就是通过在群里进行分享和答疑来进行“比武”。你说你的方式可行,就来分享吧。只要你的话我能懂,只要你的回答能使我满意,我便服气。而且慢慢地,大家也都认可了这种方式,技术领域之宽广,并非一个人可以统领。而承认一个人在某一个领域比你强并不丢人,更并不意味着你不可以在另外的领域独领风骚。
随着时间的流逝,这种技术驱动的交流也慢慢发酵成了真正的友情。金楼戏里最让我感动的一幕。叶问比武前,金楼里的各位师傅都出来帮忙。三姐说,八卦手黑,小心。账房说,形意拳霸道,千万别轻敌。勇哥说,追风赶月别留情,你一定得响啊。
因为过去的这些坦诚交往,那些原本会被视为对手的人,在你遇到困难的时候,可以坚定地站在你身后。而当你遇到各种行业上的新事件,也会在群里表达自己真实的声音,期待从群里接收来自各方的诤言。
一群所学为一人学,一人可顶一群人。
这种健康的氛围,在技术圈里也愈发变得可贵。现在互联网在迅猛发展,很多新的技术被发明和引入了进来,碰撞和争论在所难免。但有一些圈子却变得特别吵闹,为了一个框架,为了一个语言就可以争到头破血流,发出各种攻击和谩骂,甚至堵上事业和人品,想想实在是让人遗憾。
高可用架构的这群人,他们都是工作在各个公司的一线技术管理人员,掌握着业界先进的工程技术。但其实他们也很普通,跟你一样,每天都在默默得工作和学习。不一样的是,他们可以聚在一起,输出这样优质的内容。
他们对技术的追求,他们共同的性格特质,也许更值得你体会。如果看完本书,你能够在技术理念有进一步的思考,那肯定是比看一本书本身收获更大的。
“其实天下之大,又何止南北?勉强求全等于固步自封,在你眼中这块饼是一个武林,对我来讲是一个世界。所谓大成若缺,有缺憾才能有进步,真管用的话,南拳又何止北传呐?”
我在叶先生出生的佛山旁边,广州,脑海中不断回响这段话。
一乐环信首席架构师兼云通讯事业部总经理
推荐序2
如果去问架构师什么是架构,可能会得到很多不同的答案,每个架构师都会对“架构”有不一样的理解,当然这不分对错,数据架构、应用架构、物理架构、组织架构等都是架构,甚至不仅在计算机行业,各行各业都会有类似的角色,但我觉得有一个核心的概念是共通的:架构必定是长期的生产活动中,经过深度思考,积累下来的最佳实践和可复用的合理抽象。
作为Tim叔的朋友,我也是Tim叔发起的高可用架构微信群的早期成员之一,看着高可用架构群一步步发展起来,聚集了一大批一线的互联网架构师一起探讨和交流技术和架构上的问题。同时这个群也是国内最早的一批尝试“在线群分享”这种形式的微信群,过去技术会议的分享受限于时间和空间,在它却这种形式下变得更加灵活和轻量,同时也能更好地沉淀下来。这里不得不提到Tim叔其人,虽然我不清楚技术群分享这个形式是否为Tim独创,但是确是非常“Tim-ish”的一个形式,Tim是国内最早的分布式系统和高可用架构的实践者,同时也是一个活跃的技术,Blogger,我大概从2009年开始订阅Tim叔的Blog(后端技术),上面有很多很有价值和深度的技术文章,也算是看着Tim叔的Blog成长起来的程序员。互联网的分享精神,在这里就是一个很好的体现。随着近几年国内的互联网的蓬勃发展,新技术层出不穷,行业内也涌现出了很多优秀的工程师和架构师,Tim这两年就聚集起这样的一拨人,创造一个平台,能让大家的经验互相分享,思想互相碰撞,这本书就是一个很棒的阶段性的产物。
在一名工程师在成长的过程中,是否培养出“大局观”是一个重要的转折点,而快速提升自己“大局观”的方法之一就是多观察别人是怎么做的,并从中分析优势和劣势,在你面对不同的选择时多看看别人的思考过程,见多必然识广,也许此时你并不能直接解决自己遇到的问题,但更重要的是吸取别人的经验,思考得更全面。这几年随着互联网以及移动互联网的爆发,后端技术迭代的速度很快,新技术层见叠出,从RDBMS到NoSQL再到最近的NewSQL;从单模块到SOA再到微服务;从简单的脚本部署和简单的HA到容器化的自动部署及调度;从单机到分布式再到最近的云和Serverless……面对琳琅满目的设计和工具,该如何做出选择,本书不会明确告诉你答案,但是会通过一篇篇实际案例和分享来拓展你的眼界和视野,在你面临选择的时候能给到你一些启发。
本书并不是面向编程初学者的书,涉及一些比较深的内容,面也很广,建议有一定经验并希望更进一步的工程师和架构师阅读,你们一定会喜欢的。
再次感谢各位分享者和架构师,也感谢Tim和高可用架构团队的工作人员!
黄东旭PingCAPCTO
2017年8月写于海南三亚
推荐序3
我开始以为这是从理论开始的一本讲高可用的书,结果我拿到电子稿后发现上来就是很多不同公司的具体高可用的架构案例,而且是精选过的案例。从案例切入,会更加直接直观地让读者去了解高可用的架构,并且也提供了非常好的可参考的实例,如果读者在自己的场景中遇到类似问题,可以直接参考。除具体案例外,本书还通过不同公司中的系统的设计、改造的经验来介绍高可用的原理和分布式的实践,这个做法也比较有特色,依然选择了从具体的实践经验和具体的实例出发,而没有去凭空介绍很多道理,实践性非常强,并且案例所涵盖的范围是非常广泛的,和第1章的案例精选一样,都来自众的公司的实践。结束了前两章对高可用架构的案例和原理的介绍后,第3章用电商架构作为一个专题点进行了展开,在体量比较大的时候,利用电商的后端架构解决高可用还是有比较大挑战的,一些电商的经验还可以移植或者转化到别的系统当中,比较有参考价值。第4章从容器和云计算切入,这对高可用来说是一个重要的基础设施,不论基于公有云还是自己在内部做私有云亦或是采用混合云,云都是现在后端绕不过去的一个话题,而说到容器,就等同与说到了Docker,其轻量化以及通过Image来快速部署应用的特点,也使得Docker得到了广泛的应用。有了容器和云的支撑,那么如何在自身运维保障上能够适配高可用的要求,则是第5章提到的内容。没有高效的、自动的、可靠的运维支撑,是很难保障我们系统的高可用的。再接下来就到了大数据与数据库的部分,做高可用也好,做水平扩展也好,有状态的节点总是最难处理的,这个章节专门针对数据库层面去做了案例的分析,大数据本身不仅仅包括了状态,还包括了计算,而大数据的计算往往是单个任务比较重的,那么做到高可用的挑战和处理我们很多前台的并发更高但是处理时长短、消耗资源小的并发任务有很大不同,这也是第6章会介绍的内容。最后一章,介绍的是安全和网工,这个部分本身为整体应用系统提供了安全的防护和保障,进而使得从用户层面看系统是可用的。
本书的章节设置、前后的逻辑性很强,特别让我赞叹的是全书所有章节都是具体的案例,没有大套的理论、空洞的说教,都是从具体实际案例出发来介绍,一方面会给读者更强的现场感,一方面这些一个个具体的案例都是读者可参考的,相信这本书会给读者在高可用架构方面带来更多的信息和收获。
曾宪杰现任美丽联合集团技术副总裁
推荐序4
记得我还在新浪工作的那会儿,作为一名职场工程师新人,很早就开始关注Tim的技术博客。在理想国际大厦里也常见到Tim,但那时Tim对我来说是“只可远观而不可亵玩焉”。
很多年过去,随着自己在技术上的成长,我有幸加入到Tim组织的高可用架构群里。高可用群里的一项基本规则就是:大家要积极做技术分享。当时作为相对年轻的成员,我有些焦虑,毕竟与群里的大拿比较,我做的事情似乎不够高大上。但在百度完成一段抢购类型项目后,我发现在项目中总有些值得提炼的技术可以分享,于是主动联系了Tim并表达了分享的意愿。让人意外的是,在Tim事先了解内容的情况下,我也顺利地完成了一场人气爆棚的群内技术分享,总体反馈是,效果不错!事后也的确有同学联系我,采用了我的一些思路在公司内实现了抢购方案,同样,我也从高可用架构的其他分享里升华了技术视野,自此,我感受到了技术交流的重要性。
近两年我参加了不少技术会议,翻译了技术书籍,也随着团队内不少同学尝试图文、现场的技术交流,能明显感受到技术社区的活跃以及中国技术的快速崛起。当得知高可用组织要与博文视点联合出品《高可用架构(第1卷)》一书时,我强烈支持,能够让更多的人学习到高可用组织这几年的积累,这是让人兴奋的!虽然本书中我分享的部分已经是两年前的方案,但现在看来,其中的设计思想与问题思考依然有参考价值。在得到博文视点送来的样书时,我又重新阅读了书中一些大拿的技术分享,反倒相比之前通过手机阅读文章有了更多的收获!
所以,这本高可用架构一书,一定可以作为你技术进阶路上常伴左右的好书!
吕毅链家大数据部负责人
前言
成为一名优秀的架构师需要哪些条件?首先需要有扎实的编程理论基础,对软件运作的原理以及算法有深入的理解;其次还需要有丰富的实践,能够将理论与实际相结合。除此之外,从他人优秀的实践经验中学习,是成为卓越架构师最有效的方法。笔者在刚开发微博之初,国内并没有类似社交网络的技术经验,但在国外,Facebook、Twitter等公司的工程师发表的相关实践文章,给了笔者所在团队架构师很多启发,团队也顺利地搭建了自己的架构,成功应对了业务的飞速增长。
搭建高并发及高可用大型系统长期都是业界难题,Twitter在创建之初,也多次出现不稳定甚至宕机的现象。不少架构师可能有同感,大型系统中任何一个小的模块设计不慎,就可能会导致部分用户访问失败,甚至全站不能访问的后果,给用户体验带来巨大的伤害。因此在微博核心系统中,团队中的架构师将系统可用性作为设计的首要考虑因素,如履薄冰,一路走来,终于在可用性方面跟同类产品相比取得了更好的成绩。类似的,系统可用性也应该是大部分互联网系统架构最基本的要求,这也是笔者发起及参与高可用架构社区的原因。
系统的可用性在过去、现在以及未来都是架构领域最重要的一个环节,但是相关的知识并没有太多现成的渠道可以获取。物以类聚,人以群分,高可用架构技术社区聚集了业界关注互联网架构的人群,并将各大一线公司具有丰富经验的架构师在社区的分享沉淀成本书中的文章。此外社区也举办全国各地架构主题的技术沙龙、每年一度的全球互联网架构大会(thegiac.com)以及以高并发为主题的编程竞赛活动,是学习及了解架构最有效的圈子。本书内容是高可用架构社区众多讲师对架构领域内容的一个阶段总结,也是社区长期活动的一个结晶。
带给我们架构方面启发的未必需要长篇大论,像上面提到的各种形式的偏重实践的架构总结与思考的文章,往往会带给我们更多帮助。无独有偶,短小的技术启迪文章在历史上也广受欢迎,笔者喜欢的《编程珠玑》一书中就提到,Jon Bentley在《ACM通讯》发表的有关编程的短文竟然成为了该学术期刊的王牌栏目之一,给工程师带来的启发一直影响至今。希望本书中各种架构设计思想,也能够长期伴随读者的技术职业生涯。
本书感谢Carson、陈刚、杜日旭、方圆、付海军、郭军、国忠、胡淼、计盛宇、李庆丰、刘世杰、刘伟、刘芸、吕涛、莫俊彬、秋翾、邓启明、苏传朋、苏小勇、四正、王杰、熊炼、侠天、余长洪、永莉、叶青、尹雯玉、魏佳、曾健生、臧秀涛等高可用架构志愿者对内容的大力贡献(按姓名拼音为序,由于篇幅关系所有志愿者未能全部列出),如果没有他们出于技术的热爱对优秀架构思想分享的推动,也不会有本书的内容。在此,对上述所有付出时间的志愿者表示由衷的感谢。
杨卫华 微博研发副总经理,高可用架构技术社区共同发起人
2017.9.26
第1 章 高可用架构案例精选 1
郭斯杰/1.1 Twitter 高性能分布式日志系统架构解析 1
颜国平/1.2 腾讯基于用户画像大数据的电商防刷架构.16
王渊命/1.3 如何设计类似微信的多终端数据同步协议:Grouk 实践分享.26
周 洋/1.4 如何实现支持数亿用户的长连消息系统:Golang 高并发案例33
唐福林/1.5 雪球在股市风暴下的高可用架构改造分享.46
麦俊生/1.6 亿级短视频社交美拍架构实战59
刘道儒/1.7 微博“异地多活”部署经验谈69
孙宇聪/1.8 来自Google 的高可用架构理念与实践75
那 谁/1.9 深入理解同步/异步与阻塞/非阻塞区别84
第2 章 高可用架构原理与分布式实践.88
黄东旭/2.1 Codis 作者细说分布式Redis 架构设计88
霍泰稳/2.2 给你介绍一个不一样的硅谷.98
金自翔/2.3 解耦的艺术——大型互联网业务系统的插件化改造110
沈 剑/2.4 从零开始搭建高可用IM 系统117
陈宗志/2.5 360 分布式存储系统Bada 的架构设计和应用.129
张 亮/2.6 新一代分布式任务调度框架:当当Elastic-Job 开源项目的10 项特性143
付海军/2.7 互联网DSP 广告系统架构及关键技术解析152
王卫华/2.8 亿级规模的Elasticsearch 优化实战170
杨卫华/2.9 微博分布式存储考试题:案例讲解及作业精选179
李 凯/2.10 架构师需要了解的Paxos 原理、历程及实战.184
温 铭/2.11 OpenResty 的现在和未来193
第3 章 电商架构热点专题.205
张开涛/3.1 亿级商品详情页架构演进技术解密.205
杨 超/3.2 大促系统全流量压测及稳定性保证——京东交易架构.232
吕 毅/3.3 秒杀系统架构解密与防刷设计.248
王富平/3.4 Lambda 架构与推荐在电商网站实践.257
杨 硕/3.5 某公司线上真实流量压测工具构建.265
第4 章 容器与云计算.273
陈 飞/4.1 微博基于Docker 容器的混合云迁移实战.273
高 磊/4.2 互联网金融创业公司Docker 实践287
高永超/4.3 使用开源Calico 构建Docker 多租户网络.297
彭哲夫/4.4 解析Docker 在芒果TV 的实践之路310
王关胜/4.5 微博基于Docker 的混合云平台设计与实践323
第5 章 运维保障333
王 康/5.1 360 如何用QConf 搞定两万以上服务器的配置管理.333
尤 勇/5.2 深度剖析开源分布式监控CAT347
杨尚刚/5.3 单表60 亿记录等大数据场景的MySQL 优化和运维之道359
秦 迪/5.4 微博在大规模、高负载系统问题排查方法379
秦 迪/5.5 系统运维之为什么每个团队存在大量烂代码387
秦 迪/5.6 系统运维之评价代码优劣的方法395
秦 迪/5.7 系统运维之如何应对烂代码404
第6 章 大数据与数据库415
王 劲/6.1 某音乐公司的大数据实践.415
王新春/6.2 实时计算在点评.431
王卫华/6.3 百姓网Elasticsearch 2.x 升级之路.446
董西成 张虔熙/6.4 Hadoop、HBase 年度回顾457
常 雷/6.5 解密Apache HAWQ——功能强大的SQL-on-Hadoop 引擎.469
萧少聪/6.6 PostgresSQL HA 高可用架构实战.482
王晶昱/6.7 从NoSQL 历史看未来.495
杨尚刚/6.8 MySQL 5.7 新特性大全和未来展望.508
谭 政/6.9 大数据盘点之Spark 篇521
萧少聪/6.10 从Postgres 95 到PostgreSQL 9.5:新版亮眼特性532
毕洪宇/6.11 MongoDB 2015 回顾:全新里程碑式的WiredTiger 存储引擎551
王晓伟/6.12 基于Xapian 的垂直搜索引擎的构建分析561
第7 章 安全与网络572
郭 伟/7.1 揭秘DDoS 防护——腾讯云大禹系统572
冯 磊 赵星宇/7.2 App 域名劫持之DNS 高可用——开源版HttpDNS 方案详解580
马 涛/7.3 CDN 对流媒体和应用分发的支持及优化595
马 涛/7.4 HTTPS 环境使用第三方CDN 的证书难题与最佳实践611
蒋海滔/7.5 互联网主要安全威胁分析及应对方案613