这书由数十位一线架构师的实践活动与工作经验凝固而成,选料兼具专业性、创新性与技术专业深度。各技术性重点,均由具有象征性的专家或实践活动先行者撰文深度分析,相互构成“高可用性”的全局视线与领跑高度,內容包含精华实例、分布式系统原理、电子商务构架等最火专题讲座,及云计算技术、器皿、运维管理、互联网大数据、安全性等重中之重方位。不但架构师能够从这当中获益,别的IT、大数据技术就业者一样能够获得提高
目录
- 第1 章 高可用架构案例精选 1
- 郭斯杰/1.1 Twitter 高性能分布式日志系统架构解析 1
- 1.1.1 为什么需要分布式日志. 1
- 1.1.2 Twitter 如何考虑这个问题 4
- 1.1.3 基于Apache BookKeeper 构建DistributeLog 5
- 1.1.4 DistributeLog 案例分享13
- 1.1.5 疑问与解惑.13
- 颜国平/1.2 腾讯基于用户画像大数据的电商防刷架构.16
- 1.2.1 背景介绍16
- 1.2.2 黑产现状介绍16
- 1.2.3 腾讯内部防刷架构18
- 1.2.4 腾讯大数据收集维度.20
- 1.2.5 腾讯大数据处理平台——魔方21
- 1.2.6 疑问与解惑.24
- 王渊命/1.3 如何设计类似微信的多终端数据同步协议:Grouk 实践分享.26
- 1.3.1 移动互联网时代多终端数据同步面临的挑战26
- 1.3.2 多终端数据同步与传统消息投递协议的差异27
- 1.3.3 Grouk 在多终端数据同步协议上的探索实践.28
- 1.3.4 疑问与解惑.32
- 周 洋/1.4 如何实现支持数亿用户的长连消息系统:Golang 高并发案例33
- 1.4.1 关于push 系统对比与性能指标的讨论.33
- 1.4.2 消息系统架构介绍35
- 1.4.3 哪些因素决定推送系统的效果37
- 1.4.4 GO 语言开发问题与解决方案.38
- 1.4.5 消息系统的运维及测试41
- 1.4.6 疑问与解惑.42
- 唐福林/1.5 雪球在股市风暴下的高可用架构改造分享.46
- 1.5.1 雪球公司的介绍46
- 1.5.2 雪球当前总体架构47
- 1.5.3 雪球架构优化历程48
- 1.5.4 关于架构优化的总结和感想.53
- 1.5.5 疑问与解惑.54
- 麦俊生/1.6 亿级短视频社交美拍架构实战59
- 1.6.1 短视频市场的发展59
- 1.6.2 美拍的发展.60
- 1.6.3 短视频所面临的架构问题61
- 1.6.4 为支持亿级用户,美拍架构所做的一些改进62
- 1.6.5 后续发展68
- 刘道儒/1.7 微博“异地多活”部署经验谈69
- 1.7.1 微博异地多活建设历程69
- 1.7.2 微博异地多活面临的挑战70
- 1.7.3 异地多活的最佳实践.73
- 1.7.4 异地多活的新方向74
- 孙宇聪/1.8 来自Google 的高可用架构理念与实践75
- 1.8.1 决定可用性的两大因素76
- 1.8.2 高可用性方案77
- 1.8.3 可用性7 级图表80
- 1.8.4 疑问与解惑.81
- 那 谁/1.9 深入理解同步/异步与阻塞/非阻塞区别84
- 1.9.1 同步与异步.84
- 1.9.2 阻塞与非阻塞85
- 1.9.3 与多路复用I/O 的联系86
- 第2 章 高可用架构原理与分布式实践.88
- 黄东旭/2.1 Codis 作者细说分布式Redis 架构设计88
- 2.1.1 Redis、Redis Cluster 和Codis88
- 2.1.2 我们更爱一致性90
- 2.1.3 Codis 在生产环境中的使用经验和坑91
- 2.1.4 分布式数据库和分布式架构.94
- 2.1.5 疑问与解惑.95
- 霍泰稳/2.2 给你介绍一个不一样的硅谷.98
- 2.2.1 Uber .98
- 2.2.2 Coursera.99
- 2.2.3 Airbnb102
- 2.2.4 硅谷行带给我的一些影响106
- 2.2.5 疑问与解惑106
- 金自翔/2.3 解耦的艺术——大型互联网业务系统的插件化改造110
- 2.3.1 插件化.110
- 2.3.2 如何处理用户交互115
- 2.3.3 如何处理数据.115
- 2.3.4 总结116
- 沈 剑/2.4 从零开始搭建高可用IM 系统117
- 2.4.1 什么是IM117
- 2.4.2 协议设计118
- 2.4.3 WEB 聊天室.122
- 2.4.4 IM 典型业务场景126
- 2.4.5 疑问与解惑126
- 陈宗志/2.5 360 分布式存储系统Bada 的架构设计和应用.129
- 2.5.1 主要应用场景.129
- 2.5.2 整体架构130
- 2.5.3 主要模块131
- 2.5.4 数据分布策略.132
- 2.5.5 请求流程133
- 2.5.6 多机房架构134
- 2.5.7 FAQ138
- 2.5.8 疑问与解惑139
- 张 亮/2.6 新一代分布式任务调度框架:当当Elastic-Job 开源项目
- 的10 项特性143
- 2.6.1 为什么需要作业(定时任务).143
- 2.6.2 当当之前使用的作业系统144
- 2.6.3 Elastic-Job 的来历.144
- 2.6.4 Elastic-Job 包含的功能145
- 2.6.5 Elastic-Job 的部署和使用.146
- 2.6.6 对开源产品的开发理念.147
- 2.6.7 未来展望148
- 2.6.8 疑问与解惑149
- 付海军/2.7 互联网DSP 广告系统架构及关键技术解析152
- 2.7.1 优秀DSP 系统的特点152
- 2.7.2 程序化购买的特点153
- 2.7.3 在线广告的核心问题156
- 2.7.4 在线广告的挑战.156
- 2.7.5 DSP 系统架构.157
- 2.7.6 RTB 投放引擎的架构.158
- 2.7.7 DMP160
- 2.7.8 广告系统DMP 数据处理的架构.160
- 2.7.9 用户画像的方法.162
- 2.7.10 广告行业的反作弊.165
- 2.7.11 P2P 流量互刷166
- 2.7.12 CPS 引流作弊167
- 2.7.13 疑问与解惑168
- 王卫华/2.8 亿级规模的Elasticsearch 优化实战170
- 2.8.1 索引性能(Index Performance) .170
- 2.8.2 查询性能(Query Perofrmance) 171
- 2.8.3 其他173
- 2.8.4 疑问与解惑174
- 杨卫华/2.9 微博分布式存储考试题:案例讲解及作业精选179
- 2.9.1 访问场景179
- 2.9.2 设计180
- 2.9.3 sharding 策略180
- 2.9.4 案例精选181
- 李 凯/2.10 架构师需要了解的Paxos 原理、历程及实战.184
- 2.10.1 数据库高可用性难题184
- 2.10.2 Paxos 协议简单回顾.185
- 2.10.3 Basic Paxos 同步日志的理论模型186
- 2.10.4 Multi Paxos 的实际应用.187
- 2.10.5 依赖时钟误差的变种Paxos 选主协议简单分析190
- 2.10.6 疑问与解惑191
- 温 铭/2.11 OpenResty 的现在和未来193
- 2.11.1 OpenResty 是什么,适合什么场景下使用.193
- 2.11.2 某安全公司服务端技术选型的标准194
- 2.11.3 如何在项目中引入新技术.196
- 2.11.4 如何入门以及学习的正确方法197
- 2.11.5 OpenResty 中的测试和调试.199
- 2.11.6 NginScript 是否会替代OpenResty201
- 2.11.7 未来重点解决的问题和新增特性.202
- 2.11.8 开源社区建设203
- 2.11.9 疑问与解惑.203
- 第3 章 电商架构热点专题.205
- 张开涛/3.1 亿级商品详情页架构演进技术解密.205
- 3.1.1 商品详情页205
- 3.1.2 商品详情页发展史209
- 3.1.3 遇到的一些问题和解决方案220
- 3.1.4 总结228
- 3.1.5 疑问与解惑229
- 杨 超/3.2 大促系统全流量压测及稳定性保证——京东交易架构.232
- 3.2.1 交易系统的三个阶段232
- 3.2.2 交易系统的三层结构233
- 3.2.3 交易系统的访问特征234
- 3.2.4 应对大促的第1 步:全链路全流量线上压测.234
- 3.2.5 应对大促的第2 步:根据压力表现进行调优.237
- 3.2.6 异步和异构240
- 3.2.7 应对大促的第3 步:分流与限流242
- 3.2.8 应对大促的第4 步:容灾降级.244
- 3.2.9 应对大促的第5 步:完善监控.245
- 3.2.10 疑问与解惑246
- 吕 毅/3.3 秒杀系统架构解密与防刷设计.248
- 3.3.1 抢购业务介绍.248
- 3.3.2 具体抢购项目中的设计.249
- 3.3.3 如何解耦前后端压力250
- 3.3.4 如何保证商品库的库存可靠252
- 3.3.5 如何与第三方多方对账.254
- 3.3.6 项目总结255
- 3.3.7 疑问与解惑255
- 王富平/3.4 Lambda 架构与推荐在电商网站实践.257
- 3.4.1 Lambda 架构257
- 3.4.2 1 号店推荐系统实践260
- 3.4.3 Lambda 的未来262
- 3.4.4 思考263
- 3.4.5 疑问与解惑263
- 杨 硕/3.5 某公司线上真实流量压测工具构建.265
- 3.5.1 为什么要开发一个通用的压测工具265
- 3.5.2 常见的压测工具.266
- 3.5.3 构建自己的压测工具266
- 3.5.4 疑问与解惑271
- 第4 章 容器与云计算.273
- 陈 飞/4.1 微博基于Docker 容器的混合云迁移实战.273
- 4.1.1 为什么要采用混合云的架构273
- 4.1.2 跨云的资源管理与调度.275
- 4.1.3 容器的编排与服务发现.278
- 4.1.4 混合云监控体系.284
- 4.1.5 前进路上遇到的那些坑.286
- 4.1.6 疑问与解惑286
- 高 磊/4.2 互联网金融创业公司Docker 实践287
- 4.2.1 背景介绍287
- 4.2.2 容器选型287
- 4.2.3 应用迁移288
- 4.2.4 弹性扩容291
- 4.2.5 未来规划295
- 4.2.6 疑问与解惑295
- 高永超/4.3 使用开源Calico 构建Docker 多租户网络.297
- 4.3.1 PaaS 平台的网络需求.297
- 4.3.2 使用Calico 实现Docker 的跨服务器通讯.298
- 4.3.3 利用Profile 实现ACL301
- 4.3.4 性能测试306
- 4.3.5 Calico 的发展308
- 4.3.6 疑问与解惑309
- 彭哲夫/4.4 解析Docker 在芒果TV 的实践之路310
- 4.4.1 豆瓣时期310
- 4.4.2 芒果TV 的Nebulium Engine .311
- 4.4.3 Project Eru .312
- 4.4.4 细节313
- 4.4.5 网络314
- 4.4.6 存储315
- 4.4.7 Scale316
- 4.4.8 资源分配和集群调度316
- 4.4.9 服务发现和安全.317
- 4.4.10 实例317
- 4.4.11 总结318
- 4.4.12 疑问与解惑318
- 王关胜/4.5 微博基于Docker 的混合云平台设计与实践323
- 4.5.1 微博的业务场景及混合云背景.323
- 4.5.2 三大基础设施助力微博混合云.326
- 4.5.3 微博混合云DCP 系统设计核心:自动化、弹性调度328
- 4.5.4 引入阿里云作为第3 机房,实现弹性调度架构330
- 4.5.5 大规模集群操作自动化.331
- 4.5.6 不怕峰值事件.332
- 第5 章 运维保障333
- 王 康/5.1 360 如何用QConf 搞定两万以上服务器的配置管理.333
- 5.1.1 设计初衷333
- 5.1.2 整体认识334
- 5.1.3 架构介绍335
- 5.1.4 QConf 服务端336
- 5.1.5 QConf 客户端336
- 5.1.6 QConf 管理端340
- 5.1.7 其他341
- 5.1.8 疑问与解惑343
- 尤 勇/5.2 深度剖析开源分布式监控CAT347
- 5.2.1 背景介绍347
- 5.2.2 整体设计348
- 5.2.3 客户端设计349
- 5.2.4 服务端设计352
- 5.2.5 总结感悟357
- 杨尚刚/5.3 单表60 亿记录等大数据场景的MySQL 优化和运维之道359
- 5.3.1 前言359
- 5.3.2 数据库开发规范.360
- 5.3.3 数据库运维规范.363
- 5.3.4 性能优化368
- 5.3.5 疑问与解惑375
- 秦 迪/5.4 微博在大规模、高负载系统问题排查方法379
- 5.4.1 背景379
- 5.4.2 排查方法及线索.379
- 5.4.3 总结384
- 5.4.4 疑问与解惑385
- 秦 迪/5.5 系统运维之为什么每个团队存在大量烂代码387
- 5.5.1 写烂代码很容易.387
- 5.5.2 烂代码终究是烂代码388
- 5.5.3 重构