我们在业务开发过程中,通常会有高可用需求。大家通常遇到这些问题时,会采用一些常见的负载均衡设备F5、nginx反向代理、数据库主从复制等方式来解决,但有时候考虑不充分或条件不成熟时,会措手无策。其实我们还有很多别的武器可以使用,通过多种途径来解决这些问题,这些武器各有利弊,有些是热门武器,也有一些是冷门武器,但都能在各自擅长的地方发挥其优越性。
解决高可用问题时,首先要紧扣问题,拓展思路,就能灵活运用各种武器来解决问题。服务要能高可用,即是有后备选择,服务有冗余,能够实现故障切换,提升服务可用性。
下面我从客户端请求发起到数据持久化整个交互环节分别介绍这些解决高可用问题的十八般武器。
这些武器有些是运维手段,有些需要研发参与。本文既适合开发工程师阅读,也适合运维工程师阅读,本人工作近20年,高并发、高可用、高可靠、海量数据应对经验全面丰富,本文可以更丰富你对高可用应对措施与手段。
本课会介绍到以下十八般武器,将详细讲解以下十八种高可用解决手段:
开篇词:解决高可用问题的十八般武器
第一部分:客户端连接部分
武器一:客户端分区请求
武器二:智能域名解析
武器三:http重定向
第二部分:网关转发部分
武器四:负载均衡设备
武器五:lvs+keepalive
武器六:iptables端口转发
武器七:nginx反向代理
第三部分:缓存及持久化
武器八:分布式缓存
武器九:内存缓存+jgroup群组
武器十:数据库代理读写分离
武器十一:数据库主从复制
武器十二:分布式数据库
武器十三:分布式文件系统
第四部分:集群容器及硬件
武器十四:微服务注册中心负载均衡
武器十五:docker容器弹性扩容
武器十六:磁盘阵列
武器十七:多网卡bond
武器十八:双机热备HAProxy
如果你熟练的掌握了以上十八般武器,便可以轻松应对各种各样的高可用高并发的需求了。
未完待续,请关注我,后续每日更新,谢谢!
网友评论