-
内容大纲
本书从开发高可用系统需要具备的理论知识出发,逐步讲解应用的高可用、数据库高可用、缓存高可用、Nginx/LVS高可用、异地多活、全链路监控/告警、高可用与安全、高可用在秒杀系统中的应用等内容,书中同时提供了大量有价值的解决方案,可直接用于开发实践。
本书理论与实践并重,适合具有一定Java开发经验的人员,或者想从程序员进阶为架构师的开发人员阅读。 -
作者介绍
-
目录
第1章 理解高可用
1.1 什么是可用性
1.1.1 SLA与可用性
1.1.2 影响高可用的因素
1.1.3 高可用策略
1.1.4 高可用和高可靠
1.2 FMEA理论
1.3 集群与分布式
1.3.1 什么是集群与分布式
1.3.2 分布式架构
1.4 高可用之CAP理论
1.4.1 CAP理论
1.4.2 ACID理论
1.4.3 两阶段提交
1.4.4 补偿事务TCC
1.4.5 BASE理论
1.5 高可用之选举算法
1.5.1 霸道选举算法
1.5.2 Raft选举算法
1.5.3 ZAB选举算法
1.6 高可用之共识算法
1.6.1 Paxos算法
1.6.2 Multi-Paxos算法
1.6.3 Raft算法
1.7 高可用之一致性算法
1.7.1 一致性分类
1.7.2 Gossip协议(最终一致性)
1.7.3 Quorum NWR算法
1.7.4 Quorum NWR的应用
1.7.5 Raft日志一致性
第2章 应用的高可用
2.1 软件质量对高可用的影响
2.1.1 影响写出高质量代码的原因
2.1.2 代码重构
2.1.3 代码审查概述
2.1.4 人工代码审查
2.1.5 代码自动检查
2.2 优雅关闭
2.2.1 Java优雅关闭
2.2.2 Spring Boot微服务优雅关闭
2.3 优雅启动
2.3.1 预热启动
2.3.2 延时注册
2.4 服务状态
2.4.1 无状态服务
2.4.2 有状态服务
2.4.3 实现无状态
2.5 重试
2.5.1 重试概述
2.5.2 重试风险
2.5.3 退避策略
2.5.4 重试熔断策略
2.5.5 链路重试熔断
2.5.6 重试超时
2.6 幂等
2.6.1 非幂等原因
2.6.2 幂等定义
2.6.3 幂等场景
2.6.4 幂等解决方案
2.7 健康检查
2.7.1 Spring Boot Actuator健康检查
2.7.2 Nacos健康检查
2.8 流量削峰
2.8.1 为何要削峰
2.8.2 答题/验证码
2.8.3 分时分段
2.8.4 禁用“秒杀”按钮
2.8.5 分层过滤
2.8.6 消息队列
2.9 负载均衡
2.9.1 负载均衡算法
2.9.2 负载均衡的实现
2.10 限流
2.10.1 限流概述
2.10.2 限流算法
2.10.3 Sentinel中的匀速排队限流策略
2.11 降级
2.11.1 服务降级概述
2.11.2 服务降级开关
2.11.3 自动降级
2.11.4 读服务降级
2.11.5 写服务降级
2.12 熔断
2.12.1 熔断概述
2.12.2 熔断实现
2.12.3 案例:Hystrix的工作流程
2.13 故障检测
2.13.1 固定心跳
2.13.2 心跳设计
2.13.3 TCP Keepalive
2.13.4 MQTT Keepalive
2.14 故障隔离
2.14.1 故障隔离概述
2.14.2 故障隔离策略
2.15 集群容错
2.15.1 失败转移
2.15.2 失败自动恢复
2.15.3 失败安全策略
2.15.4 快速失败
2.16 集群部署
2.16.1 停机部署
2.16.2 蓝绿部署
2.16.3 滚动发布
2.16.4 灰度发布/金丝雀部署
2.16.5 无损发布
第3章 数据库高可用
3.1 数据库高可用概述
3.1.1 数据库高可用的重要性
3.1.2 MySQL XA协议
3.2 双节点
3.2.1 主从模式实现读写分离
3.2.2 读写分离实现方案
3.2.3 SQL语句执行过程
3.2.4 MySQL日志模块
3.2.5 主从数据同步
3.3 MySQL高可用架构
3.3.1 MySQL高可用架构MMM
3.3.2 基于MHA实现MySQL自动故障转移
3.3.3 MySQL Cluster架构
3.3.4 MySQL+DRDB+Heartbeat架构
3.3.5 云数据库高可用架构
3.4 案例:MySQL一主多从数据同步
第4章 缓存高可用
4.1 缓存概述
4.2 缓存高可用概述
4.3 客户端分区方案
4.4 中间代理层方案
4.4.1 中间代理层概述
4.4.2 Codis架构
4.5 服务端方案
4.5.1 主从模式
4.5.2 哨兵模式
4.5.3 Redis集群模式
4.5.4 Codis和Redis集群的区别
4.5.5 云数据库Redis
第5章 Nginx/LVS高可用
5.1 Nginx
5.1.1 Nginx概述
5.1.2 Nginx+Keepalived保障高可用
5.2 LVS
5.2.1 LVS概述
5.2.2 Nginx+Keepalived+LVS保障高可用、高性能
5.3 DNS
5.3.1 DNS概述
5.3.2 DNS解析过程
5.3.3 DNS负载均衡
5.3.4 DNS+LVS+Nginx+Keepalived
第6章 异地多活
6.1 异地多活概述
6.2 异地多活的类型
第7章 高可用之全链路监控、告警
7.1 监控/告警概述
7.1.1 监控/告警的意义
7.1.2 全链路监控
7.1.3 告警规则
7.1.4 发送告警
7.1.5 监控系统通用设计
7.1.6 监控体系案例
7.2 日志监控/告警方案
7.2.1 ELK日志系统
7.2.2 日志告警
7.3 资源监控/告警方案
7.3.1 监控概述
7.3.2 Promethous+Grafana+InfluxDB
7.3.3 其他开源监控
7.3.4 AlertManager告警
7.4 链路追踪监控
第8章 高可用与安全
8.1 高可用与安全概述
8.2 DoS/DDos攻击
8.2.1 DoS攻击概述
8.2.2 DDoS攻击的类型
8.2.3 DoS/DDoS攻击防护
8.3 安全产品/工具
8.3.1 WAF概述
8.3.2 WAF的工作模式
8.3.3 Nginx+ModSecurity
8.3.4 云厂商安全产品
第9章 秒杀系统案例
9.1 什么是秒杀
9.2 最简单的秒杀系统
9.3 业务层面控制
9.4 CDN静态资源缓存
9.5 LVS/Nginx高可用设计
9.6 服务拆分与隔离设计
9.7 流量削峰、限流和降级
9.8 热点数据处理
9.9 核心的减库存
9.10 容灾
9.11 秒杀系统安全架构
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...