Keepalive和心跳有什么区别?

我想构build一个高可用性的服务器集群。 现在我想知道关于keepalive和heartbeat的细节,两者有什么区别,以及如何select一个。

    相信HAProxy的作者Willy Tarreau在http://www.formilux.org/archives/haproxy/1003/3259.html中已经非常精确地回答了这个问题。

    从以上链接引用

    心跳并不是获得冗余haproxy安装的最佳工具,它被devise用于构build集群,这与有两个冗余的无状态networking设备有很大不同。 面向networking的工具,如keepalived或ucarp是最适合这一任务的工具

    这两个家庭的区别很简单

    1. 诸如心跳的面向集群的产品将确保共享资源将最多存在于一个地方。 这对于共享文件系统,磁盘等是非常重要的。它被devise成在切换期间在一个节点上向下服务。 这样,共享资源可能永远不会被同时访问。 这是一个非常艰巨的任务,它做得很好。
    2. 诸如keepalived之类的面向networking的产品将确保共享的IP地址将至less存在于一个地方。 请注意,我不再谈论服务或资源,它只是使用IP地址。 它不会尝试closures或上传任何服务,只会考虑一定数量的标准来决定哪个节点最适合提供服务。 但服务必须已经在两个节点上。 因此,它非常适合于冗余路由器,防火墙和代理服务器,但是完全不适用于磁盘arrays和文件系统。

    (是的,我知道这是一个老问题,但为了将来的参考)

    没有明确的,一致的分化。 这些词有时可以或多或less互换使用。

    对于高可用性设置,有一个名为Keepalived的普通用户域deamon,而Linux HA项目曾经有一个叫做Heartbeat的deamon,现在已经变成了Pacemaker 。 (我相信你没有要求对这两个系统进行完整的概述,以及所有的区别是什么,这将恕我直言。

    在日常使用中 ,我会说最常见的用法是:

    • “Keepalive”更一般地指的是保持服务高度可用的系统。

    • “心跳”更具体地指通信协议,高可用性设置的一个或多个成员周期性地发送“是的,我还活着!” 消息。 如果他们在规定的时间之前没有看到“是的,我还活着”的消息,他们的同事就会采取行动(即另一个主持人已经不在了)。 这有点像一个脉冲的感觉,因此这个名字。