心跳機制
外觀
心跳包(英語:Heartbeat)在計算機科學中指一種周期性的信號,通過硬件或軟件的形式來檢測行為的正常與否,或者與計算機系統是否一致。[1] 通常,機器間會每隔幾秒鐘發送一次心跳包。 如果接收終端沒有在指定時間內(通常是幾個心跳包發送的時間間隔內)接收到心跳包,發送終端將會被判定發送失敗。[2]
心跳協議
[編輯]心跳協議通常用於與資源通信(如:浮動IP地址)並監控其有效性。 舉個經典例子,在一台機器啟動心跳機制,心跳機制將啟動選舉進程,讓心跳機制所在的網絡(心跳網絡)的所有機器進行選舉,決定哪一台機器擁有資源。
如果心跳網絡存在兩個以上的機器,是否分區是值得考量,如果分成兩個區,那麼可以保證其中一個失效時仍舊能正常運行,但是這個兩個區並不能交互,勢必會減少效率。上述的情況下,資源只能掌握在一台機器上,而不是說每個區都會有一台機器掌握資源。
心跳包會嘗試去證明一台機器是否健康,心跳協議以及傳輸過程的可靠性是十分重要。因誤報所造成的故障轉移(這取決於資源),這是實務上不希望的。但另一方面又需要對實際的障礙進行迅速的反饋,所以心跳包而言可靠性十分重要。正因此,會希望心跳包運行在多條路線,從而提高可靠性。比如,一個心跳包通過以太網的 UDP/IP,另一個則用串行鏈路。