心跳机制
外观
(重定向自心跳 (计算机))
心跳包(英语:Heartbeat)在计算机科学中指一种周期性的信号,通过硬件或软件的形式来检测行为的正常与否,或者与计算机系统是否一致。[1] 通常,机器间会每隔几秒钟发送一次心跳包。 如果接收终端没有在指定时间内(通常是几个心跳包发送的时间间隔内)接收到心跳包,发送终端将会被判定发送失败。[2]
心跳协议
[编辑]心跳协议通常用于与资源通信(如:浮动IP地址)并监控其有效性。 举个经典例子,在一台机器启动心跳机制,心跳机制将启动选举进程,让心跳机制所在的网络(心跳网络)的所有机器进行选举,决定哪一台机器拥有资源。
如果心跳网络存在两个以上的机器,是否分区是值得考量,如果分成两个区,那么可以保证其中一个失效时仍旧能正常运行,但是这个两个区并不能交互,势必会减少效率。上述的情况下,资源只能掌握在一台机器上,而不是说每个区都会有一台机器掌握资源。
心跳包会尝试去证明一台机器是否健康,心跳协议以及传输过程的可靠性是十分重要。因误报所造成的故障转移(这取决于资源),这是实务上不希望的。但另一方面又需要对实际的障碍进行迅速的反馈,所以心跳包而言可靠性十分重要。正因此,会希望心跳包运行在多条路线,从而提高可靠性。比如,一个心跳包通过以太网的 UDP/IP,另一个则用串行链路。