标签
内容简介
本书由数十位一线架构师的实践与经验凝结而成,选材兼顾技术性、前瞻性与专业深度。各技术焦点,均由极具代表性的领域专家或实践先行者撰文深度剖析,共同组成“高可用”的全局视野与领先高度,内容包括精华案例、分布式原理、电商架构等热门专题,及云计算、容器、运维、大数据、安全等重点方向。不仅架构师可以从中受益,其他IT、互联网技术从业者同样可以得到提升。
编辑推荐
这是一本由一线架构师群体共同贡献的实践型文集,作者来源多元,围绕高可用这一核心主题,把精华案例、分布式原理、电商架构等热门专题与云计算、容器、运维、大数据、安全等重点方向放在同一视野中讨论。它的长处在于兼顾技术性、前瞻性与专业深度:既有领域专家对技术焦点的深度剖析,也有实践先行者的经验总结,读者能从中看到不同团队面对真实系统问题时的取舍思路。对于已经具备一定工程经验的读者,本书更像一组高质量的架构对话材料,适合在项目设计、技术选型和团队分享中对照使用;对初入行者而言,则需要先补齐分布式与系统基础,才能充分吸收其中的设计权衡。
适合谁读
适合
- 有几年开发经验、准备向架构方向发展的工程师
- 负责系统稳定性与高可用设计的架构师和技术负责人
- 互联网公司运维、后端开发人员,希望拓展全局技术视野
- 技术团队负责人,用于组织内部技术分享与架构讨论
不适合
- 零基础编程初学者,缺少分布式与系统知识铺垫
- 只想学习单一框架用法、不关心架构权衡的读者
- 非技术岗位读者,书中大量工程术语会造成理解障碍
阅读建议
- 先通读目录,按自己系统中最紧迫的问题选择专题精读
- 读案例时先画出原有架构与问题场景,再对照作者的解决思路
- 把分布式原理篇与电商架构篇交叉阅读,理解原理如何落到业务
- 每读完一个专题,在团队内做一次简短分享,用输出检验吸收
出版社简介
电子工业出版社
中国 · 成立于 1982 年
电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。
目录
- 版权信息
- 内容简介
- 推荐序1 技术没有高低
- 推荐序2
- 推荐序3
- 推荐序4
- 前言
- 第1章 高可用架构案例精选
- 1.1 Twitter高性能分布式日志系统架构解析
- 1.1.1 为什么需要分布式日志
- 1.1.2 Twitter如何考虑这个问题
- 1.1.3 基于Apache BookKeeper构建DistributeLog
- 1.1.4 DistributeLog案例分享
- 1.1.5 疑问与解惑
- 1.2 腾讯基于用户画像大数据的电商防刷架构
- 1.2.1 背景介绍
- 1.2.2 黑产现状介绍
- 1.2.3 腾讯内部防刷架构
- 1.2.4 腾讯大数据收集维度
- 1.2.5 腾讯大数据处理平台——魔方
- 1.2.6 疑问与解惑
- 1.3 如何设计类似微信的多终端数据同步协议:Grouk实践分享
- 1.3.1 移动互联网时代多终端数据同步面临的挑战
- 1.3.2 多终端数据同步与传统消息投递协议的差异
- 1.3.3 Grouk在多终端数据同步协议上的探索实践
- 1.3.4 疑问与解惑
- 1.4 如何实现支持数亿用户的长连消息系统:Golang高并发案例
- 1.4.1 关于push系统对比与性能指标的讨论
- 1.4.2 消息系统架构介绍
- 1.4.3 哪些因素能影响推送系统
- 1.4.4 GO语言开发问题与解决方案
- 1.4.5 消息系统的运维及测试
- 1.4.6 疑问与解惑
- 1.5 雪球在股市风暴下的高可用架构改造分享
- 1.5.1 雪球公司的介绍
- 1.5.2 雪球当前总体架构
- 1.5.3 雪球架构优化历程
- 1.5.4 关于架构优化的总结和感想
- 1.5.5 疑问与解惑
- 1.6 亿级短视频社交美拍架构实战
- 1.6.1 短视频市场的发展
- 1.6.2 美拍的发展
- 1.6.3 短视频所面临的架构问题
- 1.6.4 为支持亿级用户,美拍架构所做的一些改进
- 1.6.5 后续发展
- 1.7 微博“异地多活”部署经验谈
- 1.7.1 微博异地多活建设历程
- 1.7.2 微博异地多活面临的挑战
- 1.7.3 异地多活的最佳实践
- 1.7.4 异地多活的新方向
- 1.8 来自Google的高可用架构理念与实践
- 1.8.1 决定可用性的两大因素
- 1.8.2 高可用性方案
- 1.8.3 可用性7级图表
- 1.8.4 疑问与解惑
- 1.9 深入理解同步/异步与阻塞/非阻塞区别
- 1.9.1 同步与异步
- 1.9.2 阻塞与非阻塞
- 1.9.3 与多路复用I/O的联系
- 第2章 高可用架构原理与分布式实践
- 2.1 Codis作者细说分布式Redis架构设计
- 2.1.1 Redis、Redis Cluster和Codis
- 2.1.2 我们更爱一致性
- 2.1.3 Codis在生产环境中的使用经验和坑
- 2.1.4 分布式数据库和分布式架构
- 2.1.5 疑问与解惑
- 2.2 给你介绍一个不一样的硅谷
- 2.2.1 Uber
- 2.2.2 Coursera
- 2.2.3 Airbnb
- 2.2.4 硅谷行带给我的一些影响
- 2.2.5 疑问与解惑
- 2.3 解耦的艺术——大型互联网业务系统的插件化改造
- 2.3.1 插件化
- 2.3.2 如何处理用户交互
- 2.3.3 如何处理数据
- 2.3.4 总结
- 2.4 从零开始搭建高可用IM系统
- 2.4.1 什么是IM
- 2.4.2 协议设计
- 2.4.3 Web聊天室
- 2.4.4 IM典型业务场景
- 2.4.5 疑问与解惑
- 2.5 360分布式存储系统Bada的架构设计和应用
- 2.5.1 主要应用场景
- 2.5.2 整体架构
- 2.5.3 主要模块
- 2.5.4 数据分布策略
- 2.5.5 请求流程
- 2.5.6 多机房架构
- 2.5.7 FAQ
- 2.5.8 疑问与解惑
- 2.6 新一代分布式任务调度框架:当当Elastic-Job开源项目的10项特性
- 2.6.1 为什么需要作业(定时任务)
- 2.6.2 当当之前使用的作业系统
- 2.6.3 Elastic-Job的来历
- 2.6.4 Elastic-Job包含的功能
- 2.6.5 Elastic-Job的部署和使用
- 2.6.6 对开源产品的开发理念
- 2.6.7 未来展望
- 2.6.8 疑问与解惑
- 2.7 互联网DSP广告系统架构及关键技术解析
- 2.7.1 优秀DSP系统的特点
- 2.7.2 程序化购买的特点
- 2.7.3 在线广告的核心问题
- 2.7.4 在线广告的挑战
- 2.7.5 DSP系统架构
- 2.7.6 RTB投放引擎的架构
- 2.7.7 DMP
- 2.7.8 广告系统DMP数据处理的架构
- 2.7.9 用户画像的方法
- 2.7.10 广告行业的反作弊
- 2.7.11 P2P流量互刷
- 2.7.12 CPS引流作弊
- 2.7.13 疑问与解惑
- 2.8 亿级规模的Elasticsearch优化实战
- 2.8.1 索引性能(Index Performance)
- 2.8.2 查询性能(Query Performance)
- 2.8.3 其他
- 2.8.4 疑问与解惑
- 2.9 微博分布式存储考试题:案例讲解及作业精选
- 2.9.1 访问场景
- 2.9.2 设计
- 2.9.3 sharding策略
- 2.9.4 案例精选
- 2.10 架构师需要了解的Paxos原理、历程及实战
- 2.10.1 数据库高可用性难题
- 2.10.2 Paxos协议简单回顾
- 2.10.3 Basic Paxos同步日志的理论模型
- 2.10.4 Multi Paxos的实际应用
- 2.10.5 依赖时钟误差的变种Paxos选主协议简单分析
- 2.10.6 疑问与解惑
- 2.11 OpenResty的现在和未来
- 2.11.1 OpenResty是什么,适合什么场景下使用
- 2.11.2 某安全公司服务端技术选型的标准
- 2.11.3 如何在项目中引入新技术
- 2.11.4 如何入门以及学习的正确方法
- 2.11.5 OpenResty中的测试和调试
- 2.11.6 NginScript是否会替代OpenResty
- 2.11.7 未来重点解决的问题和新增特性
- 2.11.8 开源社区建设
- 2.11.9 疑问与解惑
- 第3章 电商架构热点专题
- 3.1 亿级商品详情页架构演进技术解密
- 3.1.1 商品详情页
- 3.1.2 商品详情页发展史
- 3.1.3 遇到的一些问题和解决方案
- 3.1.4 总结
- 3.1.5 疑问与解惑
- 3.2 大促系统全流量压测及稳定性保证——京东交易架构
- 3.2.1 交易系统的三个阶段
- 3.2.2 交易系统的三层结构
- 3.2.3 交易系统的访问特征
- 3.2.4 应对大促的第1步:全链路全流量线上压测
- 3.2.5 应对大促的第2步:根据压力表现进行调优
- 3.2.6 异步和异构
- 3.2.7 应对大促的第3步:分流与限流
- 3.2.8 应对大促的第4步:容灾降级
- 3.2.9 应对大促的第5步:完善监控
- 3.2.10 疑问与解惑
- 3.3 秒杀系统架构解密与防刷设计
- 3.3.1 抢购业务介绍
- 3.3.2 具体抢购项目中的设计
- 3.3.3 如何解耦前后端压力
- 3.3.4 如何保证商品库的库存可靠
- 3.3.5 如何与第三方多方对账
- 3.3.6 项目总结
- 3.3.7 疑问与解惑
- 3.4 Lambda架构与推荐在电商网站实践
- 3.4.1 Lambda架构
- 3.4.2 1号店推荐系统实践
- 3.4.3 Lambda的未来
- 3.4.4 思考
- 3.4.5 疑问与解惑
- 3.5 某公司线上真实流量压测工具构建
- 3.5.1 为什么要开发一个通用的压测工具
- 3.5.2 常见的压测工具
- 3.5.3 构建自己的压测工具
- 3.5.4 疑问与解惑
- 第4章 容器与云计算
- 4.1 微博基于Docker容器的混合云迁移实战
- 4.1.1 为什么要采用混合云的架构
- 4.1.2 跨云的资源管理与调度
- 4.1.3 容器的编排与服务发现
- 4.1.4 混合云监控体系
- 4.1.5 前进路上遇到的那些坑
- 4.1.6 疑问与解惑
- 4.2 互联网金融创业公司Docker实践
- 4.2.1 背景介绍
- 4.2.2 容器选型
- 4.2.3 应用迁移
- 4.2.4 弹性扩容
- 4.2.5 未来规划
- 4.2.6 疑问与解惑
- 4.3 使用开源Calico构建Docker多租户网络
- 4.3.1 PaaS平台的网络需求
- 4.3.2 使用Calico实现Docker的跨服务器通信
- 4.3.3 利用Profile实现ACL
- 4.3.4 性能测试
- 4.3.5 Calico的发展
- 4.3.6 疑问与解惑
- 4.4 解析Docker在芒果TV的实践之路
- 4.4.1 豆瓣时期
- 4.4.2 芒果TV的Nebulium Engine
- 4.4.3 Project Eru
- 4.4.4 细节
- 4.4.5 网络
- 4.4.6 存储
- 4.4.7 Scale
- 4.4.8 资源分配和集群调度
- 4.4.9 服务发现和安全
- 4.4.10 实例
- 4.4.1 1 总结
- 4.4.12 疑问与解惑
- 4.5 微博基于Docker的混合云平台设计与实践
- 4.5.1 微博的业务场景及混合云背景
- 4.5.2 三大基础设施助力微博混合云
- 4.5.3 微博混合云DCP系统设计核心:自动化、弹性调度
- 4.5.4 引入阿里云作为第3机房,实现弹性调度架构
- 4.5.5 大规模集群操作自动化
- 4.5.6 不怕峰值事件
- 第5章 运维保障
- 5.1 360如何用QConf搞定两万台以上服务器的配置管理
- 5.1.1 设计初衷
- 5.1.2 整体认识
- 5.1.3 架构介绍
- 5.1.4 QConf服务端
- 5.1.5 QConf客户端
- 5.1.6 QConf管理端
- 5.1.7 其他
- 5.1.8 疑问与解惑
- 5.2 深度剖析开源分布式监控CAT
- 5.2.1 背景介绍
- 5.2.2 整体设计
- 5.2.3 客户端设计
- 5.2.4 服务端设计
- 5.2.5 总结感悟
- 5.3 单表60亿记录等大数据场景的MySQL优化和运维之道
- 5.3.1 前言
- 5.3.2 数据库开发规范
- 5.3.3 数据库运维规范
- 5.3.4 性能优化
- 5.3.5 疑问与解惑
- 5.4 微博在大规模、高负载系统问题排查方法
- 5.4.1 背景
- 5.4.2 排查方法及线索
- 5.4.3 总结
- 5.4.4 疑问与解惑
- 5.5 系统运维之为什么每个团队存在大量烂代码
- 5.5.1 写烂代码很容易
- 5.5.2 烂代码终究是烂代码
- 5.5.3 重构不是万能药
- 5.5.4 写好代码很难
- 5.5.5 悲观的结语
- 5.6 系统运维之评价代码优劣的方法
- 5.6.1 什么是好代码
- 5.6.2 结语
- 5.6.3 参考阅读
- 5.7 系统运维之如何应对烂代码
- 5.7.1 改善可维护性
- 5.7.2 改善性能与健壮性
- 5.7.3 改善生存环境
- 5.7.4 个人感想
- 第6章 大数据与数据库
- 6.1 某音乐公司的大数据实践
- 6.1.1 什么是大数据
- 6.1.2 某音乐公司大数据技术架构
- 6.1.3 在大数据平台重构过程中踩过的坑
- 6.1.4 后续的持续改进
- 6.2 实时计算在点评
- 6.2.1 实时计算在点评的使用场景
- 6.2.2 实时计算在业界的使用场景
- 6.2.3 点评如何构建实时计算平台
- 6.2.4 Storm基础知识简单介绍
- 6.2.5 如何保证业务运行的可靠性
- 6.2.6 Storm使用经验分享
- 6.2.7 关于计算框架的后续想法
- 6.2.8 疑问与解惑
- 6.3 百姓网Elasticsearch 2.x升级之路
- 6.3.1 Elasticsearch 2.x变化
- 6.3.2 升级之路
- 6.3.3 优化或建议
- 6.3.4 百姓之道
- 6.3.5 后话:Elasticsearch 5.0
- 6.3.6 升级2.x版本成功,5.x版本还会远吗
- 6.3.7 疑问与解惑
- 6.4 Hadoop、HBase年度回顾
- 6.4.1 Hadoop 2015技术发展
- 6.4.2 HBase 2015年技术发展
- 6.4.3 疑问与解惑
- 6.5 解密Apache HAWQ——功能强大的SQL-on-Hadoop引擎
- 6.5.1 HAWQ基本介绍
- 6.5.2 Apache HAWQ系统架构
- 6.5.3 HAWQ中短期规划
- 6.5.4 贡献到Apache HAWQ社区
- 6.5.5 疑问与解惑
- 6.6 PostgresSQL HA高可用架构实战
- 6.6.1 PostgreSQL背景介绍
- 6.6.2 在PostgreSQL下如何实现数据复制技术的HA高可用集群
- 6.6.3 Corosync+Pacemaker MS模式介绍
- 6.6.4 Corosync+Pacemaker M/S环境配置
- 6.6.5 Corosync+Pacemaker HA基础配置
- 6.6.6 PostgreSQL Sync模式当前的问题
- 6.6.7 疑问与解惑
- 6.7 从NoSQL历史看未来
- 6.7.1 前言
- 6.7.2 1970年:We have no SQL
- 6.7.3 1980年:Know SQL
- 6.7.4 2000年:No SQL
- 6.7.5 2005年:不仅仅是SQL
- 6.7.6 2013年:No,SQL
- 6.7.7 阿里的技术选择
- 6.7.8 疑问与解惑
- 6.8 MySQL 5.7新特性大全和未来展望
- 6.8.1 提高运维效率的特性
- 6.8.2 优化器Server层改进
- 6.8.3 InnoDB层优化
- 6.8.4 未来发展
- 6.8.5 运维经验总结
- 6.8.6 疑问与解惑
- 6.9 大数据盘点之Spark篇
- 6.9.1 Spark的特性以及功能
- 6.9.2 Spark在Hulu的实践
- 6.9.3 Spark未来的发展趋势
- 6.9.4 参考文章
- 6.9.5 疑问与解惑
- 6.10 从Postgres 95到PostgreSQL 9.5:新版亮眼特性
- 6.10.1 Postgres 95介绍
- 6.10.2 PostgresSQL版本发展历史
- 6.10.3 PostgresSQL 9.5的亮眼特性
- 6.10.4 PostgresSQL还可以做什么
- 6.10.5 疑问与解惑
- 6.11 MongoDB 2015回顾:全新里程碑式的WiredTiger存储引擎
- 6.11.1 存储引擎的发展
- 6.11.2 复制集改进
- 6.11.3 自动分片机制
- 6.11.4 其他新特性介绍
- 6.11.5 疑问与解惑
- 6.12 基于Xapian的垂直搜索引擎的构建分析
- 6.12.1 垂直搜索的应用场景
- 6.12.2 技术选型
- 6.12.3 垂直搜索的引擎架构
- 6.12.4 垂直搜索技术和业务细节
- 6.12.5 疑问与解惑
- 第7章 安全与网络
- 7.1 揭秘DDoS防护——腾讯云大禹系统
- 7.1.1 有关DDoS简介的问答
- 7.1.2 有关大禹系统简介的问答
- 7.1.3 有关大禹系统硬件防护能力的问答
- 7.1.4 有关算法设计的问答
- 7.1.5 大禹和其他产品、技术的区别
- 7.2 App域名劫持之DNS高可用——开源版HttpDNS方案详解
- 7.2.1 HttpDNSLib库组成
- 7.2.2 HttpDNS交互流程
- 7.2.3 代码结构
- 7.2.4 开发过程中的一些问题及应对
- 7.2.5 疑问与解惑
- 7.3 CDN对流媒体和应用分发的支持及优化
- 7.3.1 CDN系统工作原理
- 7.3.2 网络分发过程中ISP的影响
- 7.3.3 防盗链
- 7.3.4 内容分发系统的问题和应对思路
- 7.3.5 P2P穿墙打洞
- 7.3.6 疑问与解惑
- 7.4 HTTPS环境使用第三方CDN的证书难题与最佳实践
- 7.5 互联网主要安全威胁分析及应对方案
- 7.5.1 互联网Web应用面临的主要威胁
- 7.5.2 威胁应对方案
- 7.5.3 疑问与解惑
- 7.5.4 进一步阅读
常见问题
需要什么基础才能读这本书?
建议具备后端开发经验,了解基本的网络、数据库和分布式系统概念,并对至少一种主流技术栈有实际使用经历。书中各专题由不同作者撰写,深度不一,基础薄弱时可以先跳过原理性较强的篇章,从案例类内容入手。
这本书适合从头到尾通读吗?
更适合按专题选读。各章由不同一线架构师撰写,主题相对独立,通读容易在陌生领域消耗耐心。建议先围绕自己当前系统的高可用问题选读相关章节,形成整体框架后再补读其他方向,效果更好。
书中的案例会不会因为技术更新而过时?
具体技术产品和工具会随时间变化,但架构师分析问题、权衡取舍的思路具有较长的参考价值。阅读时建议重点关注问题定义、方案比较和失败教训,而不是照搬具体配置或工具选型,并结合当前技术环境做判断。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。
作者简介
高可用架构社区
作者
高可用架构社区是一个以集体署名方式出现的编写组织,其名称本身即点明了关注方向:高可用系统架构的设计、实践与经验总结。公开资料有限,目前尚无法确认该社区的具体成立时间、组织形态与成员构成,也未见其获得奖项、资质或排名等信息。从库内唯一收录的作品《高可用架构(第1卷)》来看,该社区倾向于围绕编程设计领域,将架构层面的思路、方法与案例整理成书,供技术读者参考。其写作风格偏向技术实务,注重架构可靠性与工程落地,内容面向对系统稳定性与可扩展性有需求的开发者与架构人员。受资料所限,其整体影响与后续出版情况暂无法评述。