这个文章里面提到 Keepalived 实现热备高可用的原理
Nginx之Keepalived实现高可用(双机热备+自动切换)
故障转移机制
Keepalived高可用服务之间的故障切换转移,是通过VRRP 来实现的。
在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色。
这是这个『心跳』是定时的,比如 1 秒一次,也就是说,会存在一秒的『故障延迟』是吗?
比如 master 挂了,slave 需要 1 秒的时候,才能知道 master 挂了,并且接管流量是吗?
那是不是就存在 1 秒的不可用时间?
有什么办法可以做到零延迟?
参考文章: