购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

高可用(High Availability,HA)是分布式系统架构设计中必须考虑的因素之一,也是成为一名优秀的架构师必须具备的知识,系统的可用性在过去、现在和未来都是架构领域最重要的一个环节,在大型分布式系统中,一个小模块设计不好、可用性差都可能影响用户体验,给企业带来损失。因此,掌握高可用相关技能和理论知识对于个人和企业都有莫大的好处。

本书从开发高可用系统需要具备的理论知识出发,逐步讲解应用的高可用、数据库高可用、缓存高可用、Nginx/LVS高可用、异地多活、全链路监控/告警、高可用与安全以及高可用在秒杀系统中的应用等内容。

本书理论与实践相结合,融入笔者近十年开发经验,其中提供了大量解决方案和代码实现,尤其对于有一定Java开发经验,想进一步提升开发技能,甚至进阶到架构师的程序员有较大帮助。

本书结构

本书共9章,以下是各章的内容概要:

第1章主要介绍SLA与可用性、FMEA理论、集群与分布式以及学习高可用需要具备的理论知识,例如CAP理论、选举算法、共识算法及一致性算法等。

第2章主要介绍影响软件质量的因素、应用的优雅关闭与启动、无状态服务、重试、幂等、健康检查、流量削峰、负载均衡、限流、熔断、降级、故障检测、故障隔离、集群容错以及集群部署等内容。

第3章主要介绍数据库高可用,包括数据库高可用概述、双节点MySQL高可用架构(MMM、基于MHA实现MySQL自动故障转移、MySQL Cluster架构、MySQL + DRDB + Heartbeat架构、云数据库高可用架构)、MySQL一主多从数据同步案例等内容。

第4章主要介绍缓存高可用,包括客户端分区方案、中间代理层方案、服务端方案(主从模式、哨兵模式、Redis集群模式、Codis和Redis集群的区别以及云数据库Redis等内容)。

第5章主要介绍Nginx/LVS高可用,包括Nginx概述、Nginx+Keepalived保障高可用、LVS概述、Nginx+Keepalived+LVS保障高可用/高性能、DNS概述、DNS解析过程、DNS负载均衡、DNS+LVS+Nginx+Keepalived等内容。

第6章主要介绍异地多活概述、异地多活类型(同城异地多活、跨城异地多活、跨国异地多活3种类型)。

第7章主要介绍监控,告警概述、日志监控/告警方案、资源监控/告警方案、链路追踪监控等内容。

第8章主要介绍高可用与安全、DoS攻击类型与防护以及相关安全产品/工具。

第9章主要讲解什么是秒杀、最简单的秒杀系统、秒杀系统业务层面控制、CDN静态资源缓存、LVS/Nginx高可用设计、服务拆分/隔离设计、流量削峰/限流/降级、热点数据处理、减库存、容灾以及秒杀系统安全架构。

本书使用的软件版本

本书项目实战开发环境如下:

读者对象

致谢

感谢笔者的家人,感谢他们对笔者工作的理解和支持、对笔者生活无微不至的照顾,使笔者没有后顾之忧,可以全身心投入本书的写作中。

感谢笔者的工作单位厦门海西医药交易中心,公司为笔者提供了宝贵的工作、学习和实践的环境,书中很多的知识点和实战经验都来源于所在工作单位,也感谢与我一起工作的同事,非常荣幸能与他们一起在这个富有激情的团队中共同奋斗。

最后,感谢清华大学出版社以及本书的编辑老师,本书能够顺利出版离不开他们及背后的团队对本书的辛勤付出。

由于水平所限,书中难免存在疏漏之处,欢迎读者批评指正。若有意见和建议,可以发送电子邮件至booksaga@126.com。

黄文毅
2022年02月05日 o4uu30eRv1l6hJLG4bG48F1Onm4DuUWgt/ZBWeJeP0nO25CuGYIU/kI4IzooJ32Q

点击中间区域
呼出菜单
上一章
目录
下一章
×