新書推薦:
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:HK$
102.4
《
治盗之道:清代盗律的古今之辨
》
售價:HK$
125.4
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:HK$
210.6
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:HK$
300.2
《
欲望与家庭小说
》
售價:HK$
101.2
《
惜华年(全两册)
》
售價:HK$
72.2
《
甲骨文丛书·古代中国的军事文化
》
售價:HK$
99.7
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:HK$
250.7
|
編輯推薦: |
提前看到这部著作的人这样评价
经历618、双11多次大考,是保证大规模电商系统高流量、高频次的葵花宝典。
集中火力讲述作者构建最大流量系统用到的高可用和高并发原则。
浓缩作者多年对网站系统升级迭代的创新、技术、实践和积累。
高可用和高并发总体原则、关键技术、实战经验的总结,以及曾经踩过的坑。
教你如何构建高并发、大流量系统方能经受起亿级线上用户流量的真实考验。
从前端到DB底层设计,本书无不精细阐述。
站在一个新高度思考网站后台技术,从应用级缓存到前端缓存,从SOA到闭环。
*多年架构升级及大促备战的高质量总结。
将系统设计的深奥套路讲得如此清晰,难能可贵。
完整呈现如何设计响应亿级请求的*商品详情页系统。
本书作者是将技术应用于业务、理论应用于实践的大师。
地表至强,天大福利。
流量并发暴增与系统架构变革的十字路口,需要这样一本书。
一个亿级流量网站和一个中小型网站的技术架构难度截然不同。
这种指导手册式的技术书籍,值得精读和细品。
一本互联网高并发架构设计的百科全书。
从各角度剖析系统设计的优化要点和注意事项。
循序渐进地将一系列复杂问题阐述得清
|
內容簡介: |
通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。
|
關於作者: |
张开涛,现就职于京东,开涛的博客公众号作者。写过《跟我学Spring》《跟我学Spring MVC》《跟我学Shiro》《跟我学Nginx Lua开发》等系列教程,博客现有1000多万访问量。
|
目錄:
|
第 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
XXIV | 亿级流量网站架构核心技术跟开涛学搭建高可用高并发系统
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 心跳检查 ........................................................................................... 24
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
目录 | XXV
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 如何使用 Servl
|
內容試閱:
|
序1
开涛勤奋好学又乐于分享,他很早就深读了不少开源框架源码,吃透了内核技术,又非常喜欢看技术大侠们的分享,不断与同行交流,并学以致用,一开始参加工作就站在了较高的起点上,所以往往比同龄人做系统更加有信心,成果更加突出。他感恩于开源和分享,也践行着开源分享之路,每次埋头探索之后都有细心总结,有博客时写博客,有微信公众号时发公众号,把学到的和在实践中总结出来的,都无私分享出来。
网站是直接面对广大客户的,是公司的门户,必须快速响应,必须持续可用,必须抗得住洪峰。任何一个网站的发展过程中都出现过问题,影响客户体验和商业利益,公司业务规模越大,网站出现问题的损失越大。作者进入京东后,花了不少精力从事了永不消失的网站建设工作。作者和同事一起,克服了一个又一个难题,将口号变成了现实。
本书高屋建瓴,抓住了大型高并发网站设计的核心,从设计原则,到高性能、高吞吐量、高可用的系统设计,到高灵敏的监控系统构思、再到应急方案的制定,不失细节,又不拘泥于细节。相比其他已出版的关于大型网站的架构类的书籍,此书更加贴近实战,追求实用,所有内容来自于实战,文章内容也是与同道和网友们互动后改进的,本书也
没有那些为了构建一个完整的体系而只起到填充作用的段落。此书特别适合那些快速成长型企业网站的建设者,互联网行业的研发人员,对较大规模网站的重构也有借鉴意义,看这本书可以少走些弯路,少踩些坑,其中的许多策略和技术可以直接拿来用,从而节省时间。作为本书的第一批读者,发现这本书的内容组织上兼具工具书的特点,没有严格的前后依赖,可以按章节顺序阅读,也可以随机选取中间的一章。文中公布了作者的联络方式,有问题能方便地交流。最后,希望这本书不要成为一个网站架构分享的终结者,希望有更多同学加入到探索和分享的队伍中来,不断克服新的挑战,分享更多新成果。
京东商城 副总裁、京东 Y 事业部 负责人 于永利
序2
我们的互联网开发者都曾经有过这样的经验。搭建一个设计精良,功能丰富的网站并不是一个高不可攀的事情。但能够支持巨大的流量而运行自如就不是一件容易的事情了。可是,当你拥有《亿级流量网站架构核心技术》这本书时,这一切又变得那么轻松。
《亿级流量网站架构核心技术》一书详细地阐述了开发高并发高可用网站的一系列关键原则问题。就如何实现系统高可用,流量高并发进行了深刻剖析。本书例举了大量的真实应用案例,帮助读者深入了解相关知识,并且使得枯燥的说教变得生动,活泼。
本书作者长期服务于京东研发的第一线,拥有丰富的软件开发经验。秉持着对技术的热爱,为互联网开发者奉献自己的心路历程。希望他的读者能够从这本书中受益。
京东集团首席技术顾问 翁志
序3
经历过双 11和618的同学都知道,在大促时如何保证系统的高并发、高可用是非常重要的事情。因此在备战大促时,有些通用原则和经验可以帮助我们在遇到高并发时,构建更可用的系统,如限流、降级、水平扩展和隔离解耦等。通过这些原则可以在流量超预期时,很好地保护系统,避免冲击导致的系统不可用。
以前京东也遇到过一些高可用问题,如超时设置不合理导致系统崩溃;限流措施不到位,导致负载过高时系统崩溃;解耦不彻底,导致某个服务挂掉时所有依赖服务受影响等。这些都是在开发和运维系统中很常见的问题,只要开发人员在开发系统时注意下这些点就可以很好地避免。书中的高可用部分可以很好地帮助读者解决这些问题。
也经常有人讨论如何提升系统性能,最直接的解决方案是扩容,或通过如加缓存来提升系统并发能力,或使用队列进行流量削峰,也可以使用异步并发机制提升吞吐量或者接口性能等。这些技术老生常谈,并不新鲜,但很实用,大家在实现高并发系统时经常会遇到。书中的高并发部分可以帮助读者理解和使用这些技术。
这本书还有一部分介绍实战案例,其中包含了京东 0 级系统商品详情页和商品详情页统一服务系统,这两个系统每天承载了京东几十亿的流量,书中深入讲解这两个系统的核心技术,还通过案例详细介绍如何使用 OpenResty 设计和开发高性能 Web应用,值得认真阅读。
本书最大的特点是实用,书中的原则和经验是在实战中总结和进化出来的。市面上系统化地介绍高可用和高并发的文章并不多,成体系的就更少了,很多都是散落在网络上。开涛是京东优秀的架构师,有很强的架构抽象能力、扎实的编程基本功和丰富的实战经验,他将这些原则整理成体系,而且加了很多案例,相信可以很好地帮助读者学习
和使用这些原则,让读者读完此书后能落地到实际项目中。
京东集团架构师 吴博
序4
大型互联网业务需要持续建设网站系统并通过 PC、移动等各种终端来与用户进行交互。大流量网站架构如何支持高并发访问并且保证高可用性,这是一个持久的、极具挑战的技术话题。毫不夸张地说,无数互联网行业的工程师为之奋斗。
开涛是京东优秀技术人才的典型代表。他从研发一线做起,脚踏实地成长为核心架构师。他所著《亿级流量网站架构核心技术》一书,分享高可用与高并发网站构建技术,干货满满,特点鲜明。
第一,理论与实践结合。本书不仅总结出一系列技术方法论,而且配合真实的案例,娓娓道来,深入浅出。读者可以直接将这些实用技术运用到自己的日常工作中。
第二,深度与广度兼具。本书选题极具针对性,专注于高可用与高并发两方面技术实践,每个方面均详解一系列技术细节。
第三,技术与业务并重。开涛并没有纯谈技术,而是围绕商品详情页京东重要的业务产品之一,来展开更进一步的实践经验分享,给读者从业务需求到技术架构的完整视图。
第四,新兵与老将咸宜。无论是第一年人事软件开发的工程师,还是工作多年的资深人士,均可从本书中受益。
我个人强烈推荐此书。相信开涛的作品不会让大家失望。
京东商城总架构师、基础平台负责人 刘海锋
序5
去年年底我拿到本书的电子版,受邀为其写书评。全书篇幅很长,打开修订视图后,看到开涛在即将出版之前仍然在不断补充素材、示例,推敲着词句。在读到其中的某个部分的时候,我联想到当时工作中正在做的一个优化,还跟他详细讨论过,他想把这个方案也补充进去作为示例。我说,内容已经够翔实了,还嫌书不够厚吗?
是的,开涛恨不得在这本书中,一股脑儿地告诉大家他所在领域中所学到和实践的知识。写书是一个吃力还不一定能讨好的活儿,很佩服他居然能耐心写了这么多(还有很多限于整书篇幅,链接到他的博客和公众号上的扩展阅读内容)。我看到了作者的诚意。
全书前半部分我是利用坐地铁的时间看的,虽然内容我比较熟悉,但想在看书的同时如果能提前发现一些错误就更好了,看得极慢。不过,除了一些笔误之外也没发现什么硬伤。后来假期拖延症犯了,答应的书评还迟迟没有写完,后半部分就快速看过。尤其是第 4 部分案例,差不多就是开涛自己之前的工作内容,这些或多或少地都通过其他渠道看过了。
开涛结合自己的工作内容,以及相关上下游依赖系统中的各种方案、架构思想,通过自己的思考和归类总结写成本书。其中不仅有很多京东的中前端的架构实践和技术,还有作者在工作过程中用到的很多技术细节甚至代码。第 2、3 部分比较详细和系统地说明了高可用、高并发互联网应用的常用架构思想和设计方法,并配合不同的场景进行
举例阐述,比较适合对此已经有了一些经验的读者。针对一些常见软件和框架的细节使用说明,以及提供很多代码的行文风格,也许能满足那些想立即动手实践的读者。
架构讲究权衡和取舍,但是前提之一是尽可能在多个相关领域的技术知识层面有经验,因此架构也很重视细节,需要对很多因素有充分思考和权衡,才有取舍。读者在阅读本书的过程中,关注点如果是各种架构方法,则需要注意作者描述的适用场景。如果关注点是各种具体的技术细节,也不要忘记思考背后所体现的架构思想。在实际的工作中,很多方案是若干架构方法和技术的综合运用,并且随着业务或场景的变化而不断调整的,不要拘泥。
突然想到了《倚天屠龙记》中张无忌向张三丰学太极剑一节,最后张无忌成功忘记了所有的招式。对于武功高手来说,最后都是要融会贯通,形成自身体系,不要被特定的招式所束缚。学习架构,也不外乎是吧。
京东商城 交易平台架构师 肖飞
序6:动起来
开涛是个勤奋的写手,写方案,写代码,写分享,孜孜不倦。对于大多数软件开发和设计人员来说,写作不是一件容易的事。因为写出来并不是给自己看的,是要给同行们看。技术人员一方面对好的技术追求若渴,另一方面又天然地用批判和挑剔的眼光看同行的作品,算是鲁迅先生的同道吧。也正因为如此,开涛为此书内容的质量下了不少功夫。
开涛的职业生涯从空中网开始,2014 年加入京东,一头扎进了超 0 级系统的建设过程中,京东商城商品详情页改版、商品详情页统一服务规划与落地。这些系统代表着京东的形象,代表着京东技术团队的形象(开涛也是高颜值)。这些系统必须能抗峰值、不掉线、响应快,随着业务量的猛增,预期的瓶颈很快会到来,这次关键的系统改版也是从这些挑战开始,后来也就有了永不消失的单品页,也就有了这本书中的案例和用心总结。
作者停下开发的脚步,通过思考和总结,把动态的实践静止到了纸张上,给大家带来了精彩,愿各位读者能够把这些发生在某个历史瞬间的实践总结动态地运用到现实的开发实践中。也期望作者可以开放群或者公众号,邀请技术专家进来,与读者进行交流,动起来。
京东商城架构师 林世洪 2016 年 12 月
序7:开启探索之旅,感受技术的魅力
近年来,中国的互联网产业正在以前所未有的速度迅猛发展。而技术在业务发展中所扮演的角色日益重要,随着各个业务形态的发展涌现出了许多技术应用上的成功案例和先进技术的研究成果。而作者在本书中则通过对工作中的探索和总结来将系统高可用这个神秘莫测的面纱揭开,让对此有兴趣的人得以窥其真容。
在以往的交流和面试过程中,大多数的研发人员在其所研发的系统中很少有机会或确实不需要和繁多的上下游系统、海量的业务数据、复杂的部署环境以及极端灾难(如机房断电、光纤损坏)
|
|