zoukankan      html  css  js  c++  java
  • ngin 调研 高可用

    https://blog.csdn.net/weixin_43328213/article/details/87887105  【没有特殊的配置,难道是用的默认值?】

    https://www.cnblogs.com/maxtgood/p/9599068.html

    ==========

    https://www.cnblogs.com/jinjiangongzuoshi/p/9253278.html

    https://zhuanlan.zhihu.com/p/59215319

    ===keepalive

    https://zhuanlan.zhihu.com/p/148136167  [good]

    https://blog.csdn.net/l1028386804/article/details/72801492?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase

    https://blog.csdn.net/u013256816/article/details/49127995

    参考资料:https://zhuanlan.zhihu.com/p/143295216

    会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,
    备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

    虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master 和多个 backup,master 上面有一个对外提供服务的 VIP(Virtual IP Address)

    该路由器所在局域网内其他机器的默认路由为该 vip),master 会发组播,当 backup 收不到 vrrp 包时就认为 master 宕掉了,这时就需要根据 VRRP 的优先级来选举一个 backup 当 master。这样的话就可以保证路由器的高可用了

    keepalived 主要有三个模块,分别是core、check 和 vrrp。core 模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check 负责健康检查,包括常见的各种检查方式。

    vrrp 模块是来实现 VRRP 协议的。

    选举策略

    首先,每个节点有一个初始优先级,由配置文件中的priority配置项指定,MASTER 节点的 priority 应比 BAKCUP 高。运行过程中 keepalived 根据 vrrp_script 的 weight 设定,增加或减小节点优先级。规则如下:

    1. weight值为正时,脚本检测成功时”weight”值会加到”priority”上,检测失败时不加
      • 主失败: 主priority < 备priority+weight之和时会切换
      • 主成功: 主priority+weight之和 > 备priority+weight之和时,主依然为主,即不发生切换
    2. weight为负数时,脚本检测成功时”weight”不影响”priority”,检测失败时,Master节点的权值将是“priority“值与“weight”值之差
      • 主失败: 主priotity-abs(weight) < 备priority时会发生切换
      • 主成功: 主priority > 备priority 不切换
    3. 当两个节点的优先级相同时,以节点发送VRRP通告的 IP 作为比较对象,IP较大者为MASTER。

    priority 和 weight 的设定

      1. 主从的优先级初始值priority和变化量weight设置非常关键,配错的话会导致无法进行主从切换。比如,当MASTER初始值定得太高,即使script脚本执行失败,也比BACKUP的priority + weight大,就没法进行VIP漂移了。
      2. 所以priority和weight值的设定应遵循: abs(MASTER priority - BAKCUP priority) < abs(weight)。一般情况下,初始值MASTER的priority值应该比较BACKUP大,但不能超过weight的绝对值。
      3. 另外,当网络中不支持多播(例如某些云环境),或者出现网络分区的情况,keepalived BACKUP节点收不到MASTER的VRRP通告,就会出现脑裂(split brain)现象,此时集群中会存在多个MASTER节点。
  • 相关阅读:
    调试
    node笔记汇总
    移动端布局
    css 易错点总结
    Angular笔记
    CANVAS笔记
    http笔记汇总
    各种环境搭建 软件安装等等 参考网址收录
    js中同步异步,任务队列
    node.js之fs模块
  • 原文地址:https://www.cnblogs.com/testzcy/p/15130536.html
Copyright © 2011-2022 走看看