我們目前有一個NodeJS程序從套接字收集數據,該套接字從一個其他服務發送實時信息。在2個獨立的數據中心中使用PostgresSQL同步2個NodeJS實例
然後通過上述實例將該數據存儲在數據庫中。這個過程只是監聽流。將對象解析出來,然後用這些信息更新數據庫。
另一項服務可以簡單地從數據庫中讀取數據。這是我們的用戶針對這些信息所進行的調查。
我的問題是:
我將如何確保這一代碼的兩個實例正在運行,並保持在2個獨立的數據中心運行?所以如果一個實例出現故障,另一個實例就開始更新數據庫。當我們修復另一個過程時。
這裏我在想什麼:
正想着有運行,一個在每個 數據中心2臺PosgresSQL服務器。在主和備用模式下運行。這將使 兩個數據中心的Web服務都能夠從 數據庫中讀取數據,但在主服務器仍然存活時不會更新它。給我 唯一一個我想要的更新。
但另一個問題是如果NodeJS實例死亡。我 沒有辦法知道?我可以實施心跳系統,但 必須有更好的?
還考慮運行帶有隊列的Rabbit MQ服務,但這給我一個 單點故障。
一直在考慮這一點,但似乎無法找到一個可行的架構。有什麼建議?