展开全部

主编推荐语

全方位讲解高可用架构8大热点主题,全流程实践高可用秒杀系统解决方案。

内容简介

本书从开发高可用系统需要具备的理论知识出发,逐步讲解应用的高可用、数据库高可用、缓存高可用、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 秒杀系统安全架构
  • 参考文献
展开全部

评分及书评

3.3
3个评分
  • 用户头像
    给这本书评了
    3.0

    通俗易懂

      转发
      评论

    出版方

    清华大学出版社

    清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。