搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
亿级流量网站架构核心技术:跟开涛学搭建高可用高并发系统
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121309540
  • 作      者:
    张开涛著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2017
收藏
编辑推荐
  提前看到这部著作的人这样评价——
  √经历618、双11多次大考,是保证大规模电商系统高流量、高频次的葵花宝典。
  √集中火力讲述作者构建京东大流量系统用到的高可用和高并发原则。
  √浓缩作者多年对网站系统升级迭代的创新、技术、实践和积累。
  √高可用和高并发总体原则、关键技术、实战经验的总结,以及曾经踩过的坑。
  √教你如何构建高并发、大流量系统方能经受起亿级线上用户流量的真实考验。
  √从前端到DB底层设计,本书无不精细阐述。
  √站在一个新高度思考网站后台技术,从应用级缓存到前端缓存,从SOA到闭环。
  √京东多年架构升级及大促备战的高质量总结。
  √将系统设计的深奥套路讲得如此清晰,难能可贵。
  √完整呈现如何设计响应亿级请求的京东商品详情页系统。
  √本书作者是将技术应用于业务、理论应用于实践的大师。
  √地表至强,天大福利。
  √流量并发暴增与系统架构变革的十字路口,需要这样一本书。
  √一个亿级流量网站和一个中小型网站的技术架构难度截然不同。
  √这种指导手册式的技术书籍,值得精读和细品。
  √一本互联网高并发架构设计的百科全书。
  √从各角度剖析系统设计的优化要点和注意事项。
  √循序渐进地将一系列复杂问题阐述得清晰、易读。
  √实战出真理,选择这本书,靠谱。

展开
作者简介
  张开涛,现就职于京东,“开涛的博客”公众号作者。写过《跟我学Spring》《跟我学Spring MVC》《跟我学Shiro》《跟我学Nginx+Lua开发》等系列教程,博客现有1000多万访问量。
展开
内容介绍
  《亿级流量网站架构核心技术》一书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。
  不管是软件开发人员,还是运维人员,通过阅读《亿级流量网站架构核心技术》都能系统地学习实现亿级流量网站的架构核心技术,并收获解决系统问题的思路和方法。

展开
精彩书评
  本书是保证大规模电商系统高流量、高频次的葵花宝典,是互联网一线技术研发人员的实战手册。该书是经过“618”、“双11”多次大考,在实践中反复论证应运而生的。就如山野的绿草历经大自然千锤百炼、风雨彩虹、破土而出,在自然中寻得的法则。但一切有为的成果都是辛勤努力的结果,我认识开涛后重要的印象之一就是他加班加点,挑灯夜战,几乎每天下班都是星辰相伴;印象之二不像传统中的IT男,而是一个热情、开朗、有爱心的阳光男;印象之三他本身就如他的大作,是一个博学多才的“字典”,凡是技术性的问题大家都找他请教,有问必答。向致力于优秀电商系统建设的研发人员强烈推荐。
  ——京东集团副总裁、京东保险业务负责人 徐春俊

  经过这么多年的沉淀,京东早已摆脱“不行就加机器”的野蛮扩张阶段,今天的京东技术人有着丰富的大流量应对经验,每到大促都期望更猛烈的流量来检验他们的系统。作者集中火力讲述了他在京东构建大流量系统用到的高可用和高并发原则,并通过实际案例让读者能落地。
  ——京东集团副总裁、京东商城研发体系负责人 马松

  近十年来,京东的业务规模在不停驱动着系统的升级迭代和技术创新,到今天,京东已沉淀了不少技术创新,可以说完成了从使用技术到创新技术的转变。与此同时,京东的技术人在技术圈内的影响力也在不断扩大,开涛同学就是京东技术的一个好代表。他在网站系统升级迭代的过程中,不断创新和使用新技术,并将多年的实践和积累都浓缩到了本书中。该书可谓是当今电商互联网圈内的良心力作,理论和实践的完美结合,满满都是干货,也是京东技术人对互联网技术圈的一份贡献,强烈推荐大家阅读。
  ——京东集团副总裁、京东X事业部负责人 肖军

  初次见到开涛是在部门的每周例会上,当时就对开涛留下了深刻印象,说话清晰简洁,分析严谨透彻,人也长得阳光帅气。后来才知道他在Java圈中知名度很高,“开涛的博客”浏览量过千万,是个不折不扣的技术大牛。本书是开涛5年多在高可用和高并发方面总体原则、关键技术和实战经验的总结,还包括了曾经经历的坑,可谓是理论与实践相结合的结晶。在经过了“京东618”、“双11”的亿级大考后,保证了此书足以作为有志于构建亿级流量网站的技术人员们必备的案头参考书。
  ——京东保险高级研发总监 杨建

  如何构建高并发、大流量的系统,不是架构师闭门造车想出来的,是线上实际的用户流量检验的。本书通过大量的实践案例,告诉读者如何架构高并发,大流量的网站系统,不光有理论探讨,亦有大量的京东实际案例,干货多,强烈推荐研发人员通读此书。
  ——京东商城高级研发总监 王晓钟

  本书内容翔实,将专业知识讲解的通俗易懂,从前端HTML到DB底层的设计无不精细阐述。更难能可贵的是用真实成功案例传授如何在实战中进行大流量网站架构,字里行间都传递着作者的经验积累,可谓字字珠矶,是初学者的手册,更是技术大牛的切磋宝典。
  ——京东商城研发总监 尚鑫

  本书站在一个新的高度考虑网站后台技术,从应用级缓存到前端缓存、从SOA到闭环等无处不体现作者的深厚功底。作为京东大咖的作者结合了在京东的zui佳实践,运用新的网站开发理论,提出了一套非常全面的大流量、大并发网站后台的解决方案。实践证明这一套方案特别管用,因为他结合了新的开发技术,简化开发过程,比较全面的考虑到了可能面临的问题。此书特别适合中大型网站的架构师、开发工程师、运维等同学,建议人手一本。
  ——京东商城研发总监 杨思勇

  首先,这是一个非常靠谱的技术人写出的非常靠谱的作品,本书作者是京东的技术牛人,长期战斗在研发的一线,充满京东技术人的理想与激情。同时,本书也是京东这么多年高速发展经历的架构升级及大促备战经验的总结,将构建高可用、高并发系统的各种设计原则、技术方案、zui佳实践进行了全面剖析,知识量非常大,值得所有大中型网站架构师、开发人员花时间学习。
  ——京东商城研发总监 王彪

  面对大流量高并发,怎样让自己开发的系统运行得更高效、展现出更好的性能体验?系统底层怎么构建、资源怎么调度、流量怎么管控……其实这些在系统设计上都是有套路的,能将这种套路讲得特别清晰、总结得特别到位的书真的为数不多,此书非常值得大家一读。
  ——京东商城研发总监 付彩宝

  本书着重介绍了高并发、高可用服务基本设计原则和技术,并辅以详实的案例说明,对从业人员有很强的指导意义。作者开涛具备多年高并发高可用服务经验,结合自己的工作实践,将响应亿级请求的商品详情页系统的设计过程完整展现给读者,干货满满,在同类书籍中极为少见,具有很强的借鉴意义,强烈推荐。
  ——京东商城研发总监 王春明

  本书深入浅出地介绍了高并发系统的建设之路,是几年实战经验的沉淀,并且都经过了京东大促下大流量的考验。不管是初学者还是资深的架构师都能从中获取到宝贵经验。开涛是技术应用于业务、理论应用于实践的大师。开涛出品,必属精品。
  ——京东商城基础平台部首席架构师 何小锋

  大家期待已久的《亿级流量网站架构核心技术》终于出版了,这对于中国互联网界的攻城狮们来说真是一个天大的福利。该书可谓理论和实践结合的zui佳典范,着眼于高并发和高可用,提出了一系列作者在实战中总结提炼出来的设计秘籍,并通过案例对每一条秘籍进行详细破解,书中提及的每一个案例均为作者在工作中的真实案例,都经历过大促亿级流量的考验,全是满满的干货。该书作者开涛同学热爱技术,乐于分享,我拜读了他所有的博客和公众号文章,受益匪浅。这是作者又一次良心出品,值得研读,强烈推荐。
  ——京东商城运营研发部首席架构师 者文明

  开涛负责的京东网站等核心系统,是京东迁移到京东弹性云容器平台运行的系统。在上线初期遇到架构、性能等问题,开涛以其扎实的大流量网站架构技术功底,顺利保障核心系统上容器化平台。这本《亿级流量网站架构核心技术》,汇集了开涛多年在京东核心的网站系统架构的演进和实践。特别京东业务快速增长,对网站流量并发带来的挑战,技术选择,架构变革,zui具实践意义。这本书结合实际的案例,生动展现技术发展线路。如果你正在应对流量并发的增加或者系统架构需要变革的十字路口,这本书是你书桌上不可缺少的理论和实践指导。
  ——京东商城容器引擎平台负责人 鲍永成

  随着用户规模的增长,网站架构问题的难度也在成倍增加。构建一个京东规模的亿级流量网站和构建一个中小型网站的技术架构难度截然不同。
  在具体的架构实践中,所需要考虑的问题也远比中小型网站多得多。开涛根据京东网站架构工作期间的实战经验写成此书。书中既有大型网站架构的通用原则,也有具体难点的解决方案和实践经验。
  重要的是,书中所述的很多通用原则和技术方案都在京东网站线上得到了有效使用和验证。对于想深入了解如何构建一个大型网站的读者,这是一本难得的好书。
  ——京东云平台事业部架构师 陈锋

  读完了开涛的《亿级流量网站架构核心技术》原稿,我激动的心情难以平复,这正是我一直希望得到的那种指导手册式的技术书籍。书中没有浮夸的辞藻,而是实实在在的展示了开涛多年来在实战中的验证过的理论与经验。
  如果你是一位也面临着高访问高并发场景的研发人员,那么相信我,这本书中所描述的思路和方法,绝对值得你去学习和借鉴。
  ——京东商城 API网关负责人 赵云霄

  本书详细介绍了大流量,高并发系统的设计原则和具体实现方法。从限流降级到多级缓存,异步化,服务闭环,对近几年在高并发领域大行其道的Nginx+Lua架构的讲解更是细致入微。感谢开涛为大家带来这本互联网高并发架构设计的百科全书。
  ——京东商城交易平台架构师 李尊敬

  作者将多年的实践经验和研究心得呈现在这本书中,而且和实践很好的结合起来,具有很强的实践指导意义。从各个角度讲述了系统设计的注意点与优化,一层一层从前到后,范围广而详细。干活十足,强烈推荐。
  ——京东商城交易平台架构师 赵辉

  开涛理论与实践经验结合,循序渐进地将构建亿级流量网站的高并发、高可用的一系列复杂问题阐述得很清楚。阅读此书受益匪浅,希望每一位开发人员都能阅读到这本书。
  ——京东商城交易平台架构师 尤凤凯

  作者在京东商品详情页架构升级实战等多个项目中总结的成果,已经成功经历了多次618、双11大促流量的考验,实战出真理,选择这本书,靠谱。作为技术进阶优选的书籍,满满的干货,备好水,慢慢啃。
  ——京东商城网站平台架构师 刘峻桦
展开
目录
第1部分  概述 / 1
1  交易型系统设计的一些原则 / 2
1.1  高并发原则 / 3
1.1.1  无状态 / 3
1.1.2  拆分 / 3
1.1.3  服务化 / 4
1.1.4  消息队列 / 4
1.1.5  数据异构 / 6
1.1.6  缓存银弹 / 7
1.1.7  并发化 / 9
1.2  高可用原则 / 10
1.2.1  降级 / 10
1.2.2  限流 / 11
1.2.3  切流量 / 12
1.2.4  可回滚 / 12
1.3  业务设计原则 / 12
1.3.1  防重设计 / 13
1.3.2  幂等设计 / 13
1.3.3  流程可定义 / 13
1.3.4  状态与状态机 / 13
1.3.5  后台系统操作可反馈 / 14
1.3.6  后台系统审批化 / 14
1.3.7  文档和注释 / 14
1.3.8  备份 / 14
1.4  总结 / 14
第2部分  高可用 / 17
2  负载均衡与反向代理 / 18
2.1  upstream配置 / 20
2.2  负载均衡算法 / 21
2.3  失败重试 / 23
2.4  健康检查 / 24
2.4.1  TCP心跳检查 / 24
2.4.2  HTTP心跳检查 / 25
2.5  其他配置 / 25
2.5.1  域名上游服务器 / 25
2.5.2  备份上游服务器 / 26
2.5.3  不可用上游服务器 / 26
2.6  长连接 / 26
2.7  HTTP反向代理示例 / 29
2.8  HTTP动态负载均衡 / 30
2.8.1  Consul+Consul-template / 31
2.8.2  Consul+OpenResty / 35
2.9  Nginx四层负载均衡 / 39
2.9.1  静态负载均衡 / 39
2.9.2  动态负载均衡 / 41
参考资料 / 42
3  隔离术 / 43
3.1  线程隔离 / 43
3.2  进程隔离 / 45
3.3  集群隔离 / 45
3.4  机房隔离 / 46
3.5  读写隔离 / 47
3.6  动静隔离 / 48
3.7  爬虫隔离 / 49
3.8  热点隔离 / 50
3.9  资源隔离 / 50
3.10  使用Hystrix实现隔离 / 51
3.10.1  Hystrix简介 / 51
3.10.2  隔离示例 / 52
3.11  基于Servlet 3实现请求隔离 / 56
3.11.1  请求解析和业务处理线程池分离 / 57
3.11.2  业务线程池隔离 / 58
3.11.3  业务线程池监控/运维/降级 / 58
3.11.4  如何使用Servlet 3异步化 / 59
3.11.5  一些Servlet 3异步化压测数据 / 64
4  限流详解 / 66
4.1  限流算法 / 67
4.1.1  令牌桶算法 / 67
4.1.2  漏桶算法 / 68
4.2  应用级限流 / 69
4.2.1  限流总并发/连接/请求数 / 69
4.2.2  限流总资源数 / 70
4.2.3  限流某个接口的总并发/请求数 / 70
4.2.4  限流某个接口的时间窗请求数 / 70
4.2.5  平滑限流某个接口的请求数 / 71
4.3  分布式限流 / 75
4.3.1  Redis+Lua实现 / 76
4.3.2  Nginx+Lua实现 / 77
4.4  接入层限流 / 78
4.4.1  ngx_http_limit_conn_module / 78
4.4.2  ngx_http_limit_req_module / 80
4.4.3  lua-resty-limit-traffic / 88
4.5  节流 / 90
4.5.1  throttleFirst/throttleLast / 90
4.5.2  throttleWithTimeout / 91
参考资料 / 92
5  降级特技 / 93
5.1  降级预案 / 93
5.2  自动开关降级 / 95
5.2.1  超时降级 / 95
5.2.2  统计失败次数降级 / 95
5.2.3  故障降级 / 95
5.2.4  限流降级 / 95
5.3  人工开关降级 / 96
5.4  读服务降级 / 96
5.5  写服务降级 / 97
5.6  多级降级 / 98
5.7  配置中心 / 100
5.7.1  应用层API封装 / 100
5.7.2  配置文件实现开关配置 / 101
5.7.3  配置中心实现开关配置 / 102
5.8  使用Hystrix实现降级 / 106
5.9  使用Hystrix实现熔断 / 108
5.9.1  熔断机制实现 / 108
5.9.2  配置示例 / 112
5.9.3  采样统计 / 113
6  超时与重试机制 / 117
6.1  简介 / 117
6.2  代理层超时与重试 / 119
6.2.1  Nginx / 119
6.2.2  Twemproxy / 126
6.3  Web容器超时 / 127
6.4  中间件客户端超时与重试 / 127
6.5  数据库客户端超时 / 131
6.6  NoSQL客户端超时 / 134
6.7  业务超时 / 135
6.8  前端Ajax超时 / 135
6.9  总结 / 136
6.10  参考资料 / 137
7  回滚机制 / 139
7.1  事务回滚 / 139
7.2  代码库回滚 / 140
7.3  部署版本回滚 / 141
7.4  数据版本回滚 / 142
7.5  静态资源版本回滚 / 143
8  压测与预案 / 145
8.1  系统压测 / 145
8.1.1  线下压测 / 146
8.1.2  线上压测 / 146
8.2  系统优化和容灾 / 147
8.3  应急预案 / 148
第3部分  高并发 / 153
9  应用级缓存 / 154
9.1  缓存简介 / 154
9.2  缓存命中率 / 155
9.3  缓存回收策略 / 155
9.3.1  基于空间 / 155
9.3.2  基于容量 / 155
9.3.3  基于时间 / 155
9.3.4  基于Java对象引用 / 156
9.3.5  回收算法 / 156
9.4  Java缓存类型 / 156
9.4.1  堆缓存 / 158
9.4.2  堆外缓存 / 162
9.4.3  磁盘缓存 / 162
9.4.4  分布式缓存 / 164
9.4.5  多级缓存 / 166
9.5  应用级缓存示例 / 167
9.5.1  多级缓存API封装 / 167
9.5.2  NULL Cache / 170
9.5.3  强制获取最新数据 / 170
9.5.4  失败统计 / 171
9.5.5  延迟报警 / 171
9.6  缓存使用模式实践 / 172
9.6.1  Cache-Aside / 173
9.6.2  Cache-As-SoR / 174
9.6.3  Read-Through / 174
9.6.4  Write-Through / 176
9.6.5  Write-Behind / 177
9.6.6  Copy Pattern / 181
9.7  性能测试 / 181
9.8  参考资料 / 182
10  HTTP缓存 / 183
10.1  简介 / 183
10.2  HTTP缓存 / 184
10.2.1  Last-Modified / 184
10.2.2 ETag / 190
10.2.3  总结 / 192
10.3  HttpClient客户端缓存 / 192
10.3.1  主流程 / 195
10.3.2  清除无效缓存 / 195
10.3.3  查找缓存 / 196
10.3.4  缓存未命中 / 198
10.3.5  缓存命中 / 198
10.3.6  缓存内容陈旧需重新验证 / 202
10.3.7  缓存内容无效需重新执行请求 / 205
10.3.8  缓存响应 / 206
10.3.9  缓存头总结 / 207
10.4  Nginx HTTP缓存设置 / 208
10.4.1  expires / 208
10.4.2  if-modified-since / 209
10.4.3  nginx proxy_pass / 209
10.5  Nginx代理层缓存 / 212
10.5.1  Nginx代理层缓存配置 / 212
10.5.2  清理缓存 / 215
10.6  一些经验 / 216
参考资料 / 217
11  多级缓存 / 218
11.1  多级缓存介绍 / 218
11.2  如何缓存数据 / 220
11.2.1  过期与不过期 / 220
11.2.2  维度化缓存与增量缓存 / 221
11.2.3 大Value缓存 / 221
11.2.4 热点缓存 / 221
11.3  分布式缓存与应用负载均衡 / 222
11.3.1  缓存分布式 / 222
11.3.2  应用负载均衡 / 222
11.4  热点数据与更新缓存 / 223
11.4.1  单机全量缓存+主从 / 223
11.4.2  分布式缓存+应用本地热点 / 224
11.5  更新缓存与原子性 / 225
11.6  缓存崩溃与快速修复 / 226
11.6.1  取模 / 226
11.6.2  一致性哈希 / 226
11.6.3  快速恢复 / 226
12  连接池线程池详解 / 227
12.1  数据库连接池 / 227
12.1.1  DBCP连接池配置 / 228
12.1.2  DBCP配置建议 / 233
12.1.3 数据库驱动超时实现 / 234
12.1.4  连接池使用的一些建议 / 235
12.2  HttpClient连接池 / 236
12.2.1  HttpClient 4.5.2配置 / 236
12.2.2  HttpClient连接池源码分析 / 240
12.2.3  HttpClient 4.2.3配置 / 241
12.2.4  问题示例 / 243
12.3  线程池 / 244
12.3.1  Java线程池 / 245
12.3.2  Tomcat线程池配置 / 248
13  异步并发实战 / 250
13.1  同步阻塞调用 / 251
13.2  异步Future / 252
13.3  异步Callback / 253
13.4  异步编排CompletableFuture / 254
13.5  异步Web服务实现 / 257
13.6  请求缓存 / 259
13.7  请求合并 / 261
14  如何扩容 / 266
14.1  单体应用垂直扩容 / 267
14.2  单体应用水平扩容 / 267
14.3  应用拆分 / 268
14.4  数据库拆分 / 271
14.5  数据库分库分表示例 / 275
14.5.1  应用层还是中间件层 / 275
14.5.2  分库分表策略 / 277
14.5.3  使用sharding-jdbc分库分表 / 279
14.5.4  sharding-jdbc分库分表配置 / 279
14.5.5  使用sharding-jdbc读写分离 / 283
14.6  数据异构 / 284
14.6.1  查询维度异构 / 284
14.6.2  聚合数据异构 / 285
14.7  任务系统扩容 / 285
14.7.1  简单任务 / 285
14.7.2  分布式任务 / 287
14.7.3  Elastic-Job简介 / 287
14.7.4  Elastic-Job-Lite功能与架构 / 287
14.7.5  Elastic-Job-Lite示例 / 288
15  队列术 / 295
15.1  应用场景 / 295
15.2  缓冲队列 / 296
15.3  任务队列 / 297
15.4  消息队列 / 297
15.5  请求队列 / 299
15.6  数据总线队列 / 300
15.7  混合队列 / 301
15.8  其他队列 / 302
15.9  Disruptor+Redis队列 / 303
15.10  下单系统水平可扩展架构 / 311
第4部分  案例 / 323
16  构建需求响应式亿级商品详情页 / 324
16.1  商品详情页是什么 / 324
16.2  商品详情页前端结构 / 325
16.3  我们的性能数据 / 327
16.4  单品页流量特点 / 327
16.5  单品页技术架构发展 / 327
16.5.1  架构1.0 / 328
16.5.2  架构2.0 / 328
16.5.3  架构3.0 / 330
16.6  详情页架构设计原则 / 332
16.7  遇到的一些坑和问题 / 339
16.8  其他 / 347
17  京东商品详情页服务闭环实践 / 348
17.1  为什么需要统一服务 / 348
17.2  整体架构 / 349
17.3  一些架构思路和总结 / 350
17.4  引入Nginx接入层 / 354
17.5  前端业务逻辑后置 / 356
17.6  前端接口服务端聚合 / 357
17.7  服务隔离 / 359
18  使用OpenResty开发高性能Web应用 / 360
18.1  OpenResty简介 / 361
18.1.1  Nginx优点 / 361
18.1.2  Lua的优点 / 361
18.1.3  什么是ngx_lua / 361
18.1.4  开发环境 / 362
18.1.5  OpenResty生态 / 362
18.1.6  场景 / 362
18.2  基于OpenResty的常用架构模式 / 363
18.3  如何使用OpenResty开发Web应用 / 371
18.4  基于OpenResty的常用功能总结 / 375
18.5  一些问题 / 376
19  应用数据静态化架构高性能单页Web应用 / 377
19.1  整体架构 / 378
19.2  数据和模板动态化 / 381
19.3  多版本机制 / 381
19.4  异常问题 / 382
20  使用OpenResty开发Web服务 / 383
20.1  架构 / 383
20.2  单DB架构 / 384
20.3  实现 / 387
21  使用OpenResty开发商品详情页 / 405
21.1  技术选型 / 407
21.2  核心流程 / 408
21.3  项目搭建 / 408
21.4  数据存储实现 / 410
21.5  动态服务实现 / 422
21.6  前端展示实现 / 430
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证