我有一個抽象的問題。故障轉移的分佈式單例服務
我需要一個具有容錯功能的服務。該服務一次只能在一個節點上運行。這是關鍵。
有兩個連接節點:A和B.
- 如果A是運行的服務,B必須等待。
- 如果A關閉,B應檢測到並啓動服務。
- 如果A再次打開,則A應該等待並且不要運行該服務。
- 等(如果B被關斷,A開始,如果A被關閉B開始)
我想心跳協議同步的節點的狀態和檢測超時,但有一個很多比賽條件。
我可以添加一個全局鎖的第三個節點,但我不知道如何做到這一點。
任何人都知道任何知名的算法來做到這一點?還是更好有沒有任何開源軟件可以讓我控制這種事情?
感謝
告訴我們你的服務做得多一點。什麼是獨家資源?它是輸入還是輸出必須是獨佔的?爲什麼不以冗餘方式平行運行? – stefan
有幾十個獨佔資源的示例:每個客戶端僅支持單個連接的外部服務,票據服務,處理某些IoT(硬件)的服務...... – Garet