Nginx如何实现亿级高可用架构?

关注mikechen十余年BAT架构经验倾囊相授!

Nginx如何实现亿级高可用架构?

大家好,我是mikechen。

Nginx是大型架构的必备中间件,下面我就重点来详解Nginx高可用@mikechen

文章来源:mikechen.cc

Nginx高可用

大型架构都会用到负载均衡,Nginx基本可以说是流量的入口,所以Nginx的高可用就超级的重大了。

负载均衡的高可用,一般会结合与 LVS(Linux Virtual Server)、Nginx结合,实现高可用负载均衡架构。

如下图所示:

Nginx如何实现亿级高可用架构?

这里核心是:通过Keepalived 监控各个节点的健康状态,并根据优先级和故障检测,实现 VIP 在主节点和备节点之间的自动漂移。

在集群中,只有一个节点持有 VIP,当主节点宕机时,VIP 会迅速迁移到备份节点,从而保证服务的连续性和稳定性。

为什么需要 Keepalived

随着互联网应用的不断发展,单点故障已成为影响系统稳定性的主要问题之一。

在高并发、高可用性的生产环境中,任何单点故障都可能导致服务的中断,从而影响用户体验或企业的正常运营。

Nginx如何实现亿级高可用架构?

Keepalived 可以协助解决以下问题:

  1. 单点故障
  2. 通过高可用的架构设计,确保在主服务器出现故障时,服务能够自动转移到备用服务器,避免服务中断。
  3. 故障自动恢复
  4. 通过自动化的故障检测和恢复机制,减少人工干预,提升系统的稳定性。
  5. 提高系统可靠性
  6. Keepalived 可以在不同的服务器之间实现 VIP 的动态切换,增强系统容错能力和负载均衡能力。

Nginx高可用架构

整体架构,如下图所示:

Nginx如何实现亿级高可用架构?

LVS 将流量分发到 nginx01 (172.27.9.91) 和 nginx02 (172.27.9.92)。

LVS 工作在四层(TCP/IP 层),转发效率很高,Nginx 负责七层代理(缓存、路由等)。

Keepalived 检测心跳,秒级漂移 VIP。

Keepalived 主要通过 VRRP 协议实现高可用性,在 VRRP 协议中,集群中的多个节点会共享一个虚拟 IP(VIP),该 IP 始终指向当前活动节点。

主节点和备节点

集群中会有一个主节点(Master)和一个或多个备节点(Backup)。

主节点负责持有虚拟 IP,提供服务,备节点则监控主节点的健康状况。

健康检查

备节点通过 VRRP 协议定期与主节点交换心跳信息。

如果主节点没有响应,备节点会将虚拟 IP 升级为活动节点,并开始提供服务。

VIP 漂移

当主节点发生故障时,VIP 会从主节点漂移到备节点,继续提供服务,保证业务不中断。

关键组件:

vrrp_instance

:定义 VRRP 实例,设置主备状态、优先级等信息。

vrrp_script

:定义健康检查脚本,用于定期检查主节点的运行状态。

通过定期的健康检查,Keepalived 确保主节点宕机时,VIP 可以无缝地漂移到备份节点上。

Keepalived结合与 LVS 、Nginx配合使用,来搭建高可用负载均衡架构。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

Nginx如何实现亿级高可用架构?

© 版权声明

相关文章

3 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    过期了脆脆鲨 投稿者

    LVS和Nginx结合有啥优势?

    无记录
  • 头像
    尖尖角创始人张老师 读者

    VRRP协议具体怎么运行的?

    无记录
  • 头像
    Ru简单生活 读者

    收藏了,感谢分享

    无记录