计算机
类型
可以朗读
语音朗读
135千字
字数
No.58
科学技术
2025-04-01
发行日期
展开全部
主编推荐语
一本书涵盖互联网大厂主流的高并发系统设计方法与实践。
内容简介
本书主要探讨高并发场景下系统设计的原理和实践案例,帮助读者系统、快速地理解高并发系统的设计原理与相关实践,以及掌握解决高并发场景下可能遇到的各种问题的方法。
本书共6章。第1章介绍高并发系统的发展历史、设计难点和基本设计原则,以及度量指标;第2~4章介绍有助于提升高并发系统可用性的3种方法—系统容错、冗余和分片;第5章从提升高并发系统性能的角度讲解并发与异步的原理和实践技巧;第6章从系统运维和团队流程管理两个角度讲解如何提升团队对高并发系统的把控性,进而提升系统的可用性。
目录
- 版权信息
- 内容提要
- 前言
- 资源与支持
- 第1章 高并发系统概述
- 1.1 高并发系统的发展历史
- 1.2 高并发系统的设计难点
- 1.2.1 系统的高可用
- 1.2.2 访问的高性能
- 1. 提高系统的并行能力
- 2. 缩短单次请求的响应时间
- 1.3 高并发系统的基本设计原则
- 1.3.1 面向失败编程
- 1. 系统容错
- 2. 防御性编程
- 1.3.2 可扩展
- 1.3.3 缓存
- 1.3.4 并发
- 1.4 高并发系统的度量指标
- 1.4.1 可用性的度量
- 1.4.2 性能的度量
- 1.5 小结
- 第2章 系统容错
- 2.1 重试
- 2.1.1 重试策略
- 2.1.2 重试风暴的应对方式
- 2.1.3 幂等性的保证方法
- 2.2 熔断
- 2.2.1 熔断的作用
- 2.2.2 断路器模式与应用
- 代码清单2-1 Redis调用代码
- 代码清单2-2 节点错误状态流转
- 代码清单2-3 节点状态探测
- 2.2.3 弹性熔断算法
- 代码清单2-4 初始化一个基于滑动窗口的计数器
- 代码清单2-5 弹性熔断算法处理请求
- 代码清单2-6 弹性熔断算法实现
- 2.2.4 Sentinel的熔断机制实现
- 代码清单2-7 DegradeSlot类的实现
- 代码清单2-8 AbstractCircuitBreaker类的实现
- 代码清单2-9 onRequestComplete()的实现
- 2.3 降级
- 2.3.1 降级的典型应用场景和处理方式
- 2.3.2 配置中心的实现
- 2.3.3 降级预案
- 2.4 超时
- 2.4.1 超时的重要性
- 2.4.2 设置任务的超时时间
- 2.5 限流
- 2.5.1 限流的4种算法
- 2.5.2 自适应限流算法
- 2.6 隔离
- 2.6.1 动静隔离
- 代码清单2-10 缓存行的伪共享示例代码
- 代码清单2-11 解决缓存行的伪共享示例代码
- 2.6.2 物理隔离
- 2.6.3 线程隔离
- 2.6.4 快慢隔离
- 2.6.5 热点数据隔离
- 2.7 小结
- 第3章 冗余
- 3.1 什么是冗余
- 3.2 存储冗余
- 3.2.1 MySQL冗余的实现方式
- 3.2.2 Kafka冗余的实现方式
- 3.3 缓存冗余
- 3.3.1 Memcached冗余的实现方式
- 3.3.2 极端读流量下缓存冗余的实现方式
- 1. 服务器CPU0的软中断负载较高
- 2. 网卡带宽的限制
- 3.3.3 极端写流量下缓存冗余的应对方法
- 3.3.4 缓存数据一致性保证
- 3.3.5 缓存不命中的应对方式
- 3.4 CDN冗余
- 3.4.1 上传系统之殇
- 3.4.2 CDN冗余和调度
- 3.4.3 视频防盗链的实现方式
- 3.5 服务器冗余
- 3.5.1 常见的负载均衡算法
- 3.5.2 故障节点的探测
- 3.5.3 流量爬坡
- 3.6 机房冗余
- 3.6.1 机房冗余的实现方式
- 3.6.2 同城双活
- 3.6.3 两地三中心
- 3.6.4 异地多活
- 3.7 小结
- 第4章 分片
- 4.1 数据库分片
- 4.1.1 常见的数据库分片方式
- 4.1.2 多字段查询
- 4.1.3 数据迁移
- 4.1.4 ID的生成方式
- 4.1.5 分布式系统的数据一致性
- 4.2 缓存分片
- 4.2.1 缓存的分片方式
- 4.2.2 无底洞效应
- 4.3 小结
- 第5章 并发与异步
- 5.1 并发与异步的区别
- 5.2 并发编程的实现方式:池化技术
- 5.2.1 线程池的原理与使用技巧
- 代码清单5-1 优先扩充线程数的线程池实现代码
- 5.2.2 数据库连接池的原理
- 代码清单5-2 Druid示例配置
- 5.3 并发编程的安全性与性能
- 5.3.1 并发编程的安全性
- 代码清单5-3 指令重排无影响代码示例
- 代码清单5-4 指令重排有影响代码示例
- 5.3.2 并发编程的性能
- 5.4 消息队列
- 5.4.1 消息队列的作用
- 5.4.2 保证消息不丢失
- 5.4.3 保证消息不重复
- 5.4.4 消息延迟的危害
- 5.4.5 消息延迟的优化
- 5.5 小结
- 第6章 高并发系统的运维
- 6.1 全链路监控
- 6.1.1 全链路监控的技术体系
- 6.1.2 分布式追踪系统的构建
- 6.1.3 用户监控系统
- 6.2 报警系统
- 6.2.1 报警的原则
- 6.2.2 常见的报警收敛方法
- 6.3 全链路压测
- 6.3.1 全链路压测的常见误区
- 6.3.2 流量染色
- 6.3.3 流量处理方式
- 6.3.4 影子库表
- 6.3.5 全链路压测系统的架构
- 6.4 故障演练
- 6.4.1 故障演练的原则
- 6.4.2 故障演练的标准执行流程
- 6.4.3 故障演练工具
- 6.5 稳定性保障流程
- 6.5.1 控制变更流程
- 6.5.2 整理SOP文档
- 6.5.3 重视故障复盘机制
- 6.5.4 做好日常系统梳理
- 6.6 小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。