更新时间:2023-08-25 11:06:53
封面
版权信息
作者简介
内容简介
前言
本书结构
本书使用的软件版本
读者对象
致谢
第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