pgoneproxy的VIP机制

    在向外提供服务时,通常会使用虚拟IP(VIP),增加服务的可靠性。在pgoneproxy中同样提供了vip功能,使用pgoneproxy后就可以省略其他提供VIP的软件(比如keepalive)。

1. vip 的使用    

    在pgoneproxy中需要使用VIP,配置是非常简单的。只需要增加--vip-address=xxx.xxx.xxx.xxx/eth0:0即可。其中xxx.xxx.xxx.xxx 是虚拟IP地址,eth0是网卡接口。eth0:0表示在已经存在的网卡接口eth0上面建立虚拟网卡eth0:0。

    增加配置后,在同网段下的不同主机上面启动pgoneproxy即可。可以通过kill掉正在提供服务的pgoneproxy,VIP会漂移到另外一台pgoneproxy上面去,继续向外提供服务。

2. VIP实现的原理

    1)在启动pgoneproxy时先清理掉自身主机的虚拟网卡信息,可以通过直接调用ifconfig eth0:0 down 或者是通过ioctl来直接~IFF_UP掉eth0:0即可。

    2)读取广播消息,获取正在使用的虚拟ip所在主机的mac地址。

    3)如果虚拟ip mac地址不是本机的mac地址,则禁止设置vip。

    4)ping VIP,如果ping失败,则设置本机为vip主机,并且广播本机mac地址。

通过单独的线程在间隔时间内不断地执行2),3),4)步即可。

3. 防止脑裂的办法

    通过在设置VIP后,把VIP主机的mac地址进行广播。其他主机在设置VIP之前先判断VIP mac地址是否与本地mac一致来决定是否设置VIP还是禁止VIP。这样当多个pgoneproxy同时启动时,会在短暂的震荡(可能有也可能没有,关键看时机,出现这种情况的概率很小)之后,最终会决定出一个主pgoneproxy的。

 

 

转载于:https://my.oschina.net/u/918218/blog/712140

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值