服务容灾

文章目录

    Harry, you cannot claim you are a Facebook engineer if you have never brought the site down!
    - 亲历 Facebook 爆发的 5 年

    服务容灾的目标是什么

    当单点服务出现故障时,我们可以从容的睡一觉或者吃完饭再处理。

    物理层的容灾

    • 去单机
    • 异地部署

    分层容灾

    经典的三层结构系统

    | | 特点 | 请求量 | 常见容灾方案 |
    | – | – | – | – |
    | 接入层 | 透传,无状态 | 大 | LVS, L5, Nginx, HAProxy, DNS |
    | 应用层 | 可水平拆分为局部状态 | 中 | 1. 增加备机,监控实现自动切换 |
    | | | | 2. hash 用户标识分服处理 |
    | | | | 3. 双机互备, 负载均衡 |
    | 数据层 | 全局状态 | 小 | | |

    可选方案

    应用层双机互备

    Simple is Better

    容灾的架构设计不应太复杂,因为部署的人员与设计的人员可能不是同一个人,如果过于复杂,可能会出现部署上的人为失误。

    使用 keepalived 实现主备的切换

    keepalived 的实现原理,主机和备机都运行 keepalived 后台服务,主机不断发送消息给备机,当备机接收不到时,则认为主机异常,接管主机的虚拟 IP。

    参考

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式