Java高并发核心编程 卷3 亿级用户Web应用架构与实战 加强版
作 者:尼恩 等 著
定 价:118
出 版 社:清华大学出版社
出版日期:2022年11月01日
页 数:456
装 帧:平装
ISBN:9787302621416
"基于亿级用户的高并发、高可用性和高性能Web应用进行体系化、结构化、清晰化的章节安排。
从Java静态代理、动态代理模式入手,解读Spring Cloud全家桶中RPC的核心原理和执行过程。
从观察者模式入手,解读RxJava、Hystrix的核心思想和使用方法。
从高性能传输模式Reactor模型入手,解读Nginx的核心思想以及各配置项的底层知识和原理。
本书的初衷是为读者奉上一本Spring Cloud和Nginx的“原理级”“思想级”的优秀图书,帮助读者顺利
进入互联网大厂,成为高级Java工程师和核心架构师。"
本书从动态代理模式、Reactor模式、三大限流策略等知识入手,深入浅出地剖析Spring Cloud+Nginx系统架构的核心原理以及Web高并发开发技术。全书从基础设计模式和基础原理出发,理论与实战相结合,系统、详尽地介绍Spring Cloud + Nginx高并发核心编程。
本书共10章。前6章剖析Feign高并发RPC的底层原理,解析Hystrix高性能配置的核心选项,阐述Hystrix滑动窗口的核心原理;后4章介绍Nginx的核心原理及其配置,并结合场景实现Spring Cloud、Spring Cloud+Nginx Lua,为广大Java开发者提供一个全面学习高并发开发的实战案例。这些知识会为广大Java工程师解决后台开发中遇到的高并发、高性能问题打下坚实的技术基础。
"尼 恩
中南大学硕士,资深系统架构师、IT领域资深作家、有名博主、从业十余年,先后在华为、神州数码等公司从事技术研发、架构工作。长期专注于高性能Web平台、高性能通信、高性能搜索、数据挖掘等领域的3高架构研究、架构实操、核心代码开发工作,以及核心中间件、底层源码研究工作,负责过多个亿级RMB智慧城市平台、大型政务平台、数据中台架构、技术中台架构工作,发起的3高研究社群“疯狂创客圈”目前有研究人员1100多人。
唐 欢
计算机专业硕士,资深系统架构师、资深博主,拥有多年Java开发和系统架构经验,多年敏捷开发的项目管理经验,现在国内科技企业担任系统架构师一职,主持企业软件的系统架构和产品研发工作。
孙精科
南京理工大学计算机专业硕士,上海交通大学EMBA。行业内知名信息化系统专家,具有丰富的大型信息系统的研发及管理经验。近10年来,主持上市公司信息系统建设、三维开发、通信协议null
无
第1章 亿级用户Web应用的架构与实操 1
1.1 高并发基本原理 1
1.1.1 响应时间 1
1.1.2 吞吐量 2
1.1.3 错误率 4
1.2 提升系统的并发能力 4
1.2.1 纵向扩展 5
1.2.2 横向扩展 6
1.2.3 高并发架构中的分层策略 6
1.3 接入层横向扩展高并发架构 7
1.3.1 硬负载均衡 7
1.3.2 软负载均衡 8
1.3.3 LVS和Nginx的配合使用 10
1.3.4 DNS负载均衡 10
1.4 动静分离与接入层的缓存架构 14
1.4.1 接入层网关缓存 14
1.4.2 CDN加速 15
1.4.3 接入层的缓存架构的原则 17
1.5 服务层的横向扩展高并发架构 18
1.5.1 微服务网关的高并发横向扩展 18
1.5.2 微服务Provider高并发横向扩展 19
1.5.3 微服务Provider的自动伸缩 20
1.6 缓存层的高并发架构 24
1.6.1 旁路缓存模式 24
1.6.2 读/写穿透模式 26
1.6.3 异步回写模式 28
1.6.4 三大缓存使用模式的比较 28
1.6.5 旁路缓存模式如何保证双写的数据一致性 29
1.6.6 本地缓存架构 39
1.6.7 多级、细粒度缓存架构 42
1.7 数据层的横向扩展高并发架构 44
1.7.1 数据库服务器的能力参考数据 44
1.7.2 结构化数据的高并发架构方案:分库分表 45
1.7.3 结构化分库分表:水平拆分与垂直拆分 46
1.7.4 亿级库表规模架构设计 47
1.7.5 百亿级库表架构设计 48
1.7.6 百亿级数据的异构查询 49
1.7.7 ES+HBase组合方案的数据查询过程 50
1.8 亿级用户量场景下的流量预估 50
1.8.1 请求处理模型 50
1.8.2 旧系统的流量架构 52
1.8.3 新系统的流量架构 52
1.8.4 二八定律 52
1.8.5 通过二八定律进行流量预估 53
1.9 高并发架构 56
1.9.1 同步架构 56
1.9.2 异步架构 56
1.10 高可用架构 57
1.10.1 什么是高可用 57
1.10.2 高可用的度量 58
1.10.3 高并发架构中的分层策略 58
1.10.4 分层规避单点瓶颈+自动故障转移 58
1.10.5 其他的高可用策略 59
1.11 高性能架构 59
第2章 Spring Cloud+Nginx高并发核心编程的学习准备 61
2.1 Spring Cloud + Nginx架构的主要组件 61
2.2 Spring Cloud+Nginx核心知识的广泛欠缺 63
2.3 Spring Cloud和Spring Boot的版本选择 63
2.4 Spring Cloud微服务开发所涉及的中间件 65
2.5 Spring Cloud微服务开发和自验证环境 66
2.5.1 开发和自验证环境的系统选项和环境变量配置 66
2.5.2 使用Fiddler工具抓包和查看报文 67
2.6 crazy-Spring Cloud微服务开发脚手架 69
2.7 以作为Spring Cloud+Nginx的实战案例 70
第3章 Spring Cloud入门实战 72
3.1 Eureka服务注册与发现 73
3.1.1 什么是服务注册与发现 73
3.1.2 Eureka Server注册中心 74
3.1.3 微服务提供者Provider的创建和配置 79
3.1.4 微服务提供者的续约(心跳) 82
3.1.5 微服务提供者的健康状态 84
3.1.6 Eureka自我保护模式与失效Provider的快速剔除 87
3.2 Config配置中心 90
3.2.1 config-server服务端组件 90
3.2.2 config-client客户端组件 92
3.3 微服务的RPC远程调用 93
3.3.1 RESTfull风格简介 94
3.3.2 RestTemplate远程调用 94
3.3.3 Feign远程调用 96
3.4 Feign+Ribbon实现客户端负载均衡 97
3.4.1 Spring Cloud Ribbon基础 97
3.4.2 Spring Cloud Ribbon的负载均衡策略 100
3.4.3 Spring Cloud Ribbon的常用配置 101
3.5 Feign+Hystrix实现RPC调用保护 105
3.5.1 Spring Cloud Hystrix失败回退 106
3.5.2 分布式系统面临的雪崩难题 109
3.5.3 Spring Cloud Hystrix熔断器 111
第4章 Spring Cloud RPC远程调用 核心原理 115
4.1 代理模式与RPC客户端实现类 115
4.1.1 客户端RPC远程调用实现类的职责 115
4.1.2 简单的RPC客户端实现类 117
4.1.3 从基础原理讲起:代理模式与RPC客户端实现类 120
4.1.4 使用动态代理模式实现RPC客户端类 123
4.1.5 JDK动态代理机制的原理 126
4.2 模拟的Feign RPC动态代理实现 128
……