分布式高可用架构之道

分布式高可用架构之道

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

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

内容简介

本书从开发高可用系统需要具备的理论知识出发,逐步讲解应用的高可用、数据库高可用、缓存高可用、Nginx/LVS高可用、异地多活、全链路监控/告警、高可用与安全、高可用在秒杀系统中的应用等内容,书中同时提供了大量有价值的解决方案,可直接用于开发实践。

本书理论与实践并重,适合具有一定Java开发经验的人员,或者想从程序员进阶为架构师的开发人员阅读。

作者简介

作者编黄文毅,CSDN博客专家,高级软件工程师。先后就职于厦门星耀蓝图、上海美团等科技公司,目前就职于厦门美图科技有限公司,从事Java开发工作。具有丰富的软件开发经验,熟悉Java、高并发、大数据及相关软件架构。出版《公布式微服务架构:原理与实践》《Spring 5企业级开发实战》(合著)《Spring MVC MyBatis快速开发与项目实战》等多部技术图书。

章节目录

版权信息

作者简介

内容简介

前言

第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 秒杀系统安全架构

参考文献

分布式高可用架构之道是2022年由清华大学出版社出版,作者黄文毅。

得书感谢您对《分布式高可用架构之道》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Spring Cloud 微服务分布式架构开发实战 电子书
1、选取知识点核心实用,以互联网+实现终身学习2、以企业需求为设计导向,以任务驱动为讲解方式3、以案例为主线组织知识点,以实战项目来提升技术4、充分考虑学习者的认知曲线,由浅入深,边讲边练
分布式应用系统架构设计与实践 电子书
本书以理论与实践相结合的方式,对分布式应用系统的架构设计进行系统、全面的阐述。
分布式缓存——原理、架构及Go语言实现 电子书
随着互联网的飞速发展,各行各业对互联网服务的要求也越来越高,互联网系统很多常见的存储类场景都面临着容量和稳定性风险。此时,本地缓存已无法满足需要,分布式缓存由于其高性能、高可用性等优点迅速被广大互联网公司接受并使用。。本书共分3个部分,每个部分都有3章。第1部分为基本功能的实现,主要介绍基于HTTP的inmemory缓存服务、HTTP/REST协议、TCP等。第2部分介绍性能相关的内容,我们将集中
PHP安全之道:项目安全的架构、技术与实践 电子书
一本面向研发技术人员的安全书,帮助研发人员在项目研发过程中规避风险。
分布式对象存储——原理、架构及Go语言实现 电子书
适读人群 :本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。   赠送价值249元的云存储专家视频课程   掌握云存储理论,动手搭建分布式对象存储架构   云存储已经是大家司空见惯的一种网络服务了,比如大家常用的百度云盘、美亚S3、微软的OneDrive、苹果公司的iCloud和谷歌的Google Cloud等。云存储背后的原理是怎样的,又是如何实现的呢?   本书完全从云存储的需求出发讲述对象存储的原理,并且带领读者使用Go语言编程,循序渐进、从无到有地建立起一个分布式对象存储的架构。也就是说,本书首先介绍为什么要这么做,然后解释怎么做。   本书适合云存储方面的研究者、工程师或架构师阅读,也可以供对云存储技术感兴趣的读者参考。在读完本书之后,你将较为深入地理解对象存储服务,甚至能够实现自己的对象存储服务。   本书包括以下内容:    对象存储简介;    分布式系统原理;    元数据以及元数据服务;    数据校验和去重;    数据冗余和即时修复;    断点续传;    数据压缩;    数据维护。