對於分散式、面向行的資料庫,我有哪些選擇?

對於分散式、面向行的資料庫,我有哪些選擇?

(抱歉,如果這不是正確的論壇。StackOverflow 似乎也不正確。我以為主頁上曾經有一個說明,說明什麼樣的問題是相關的,但今天找不到了。)

我有多個伺服器將為一組客戶端處理資料。我事先不知道哪些客戶端將連接到哪些伺服器,並且客戶端可能會在伺服器之間移動。我需要一種讓伺服器共享有關客戶端的最新資訊的方法。

假設我有客戶端 C1、C2、C3 和 C4 以及伺服器 S1 和 S2。伺服器啟動並知道客戶端是 C1..C4,但對它們一無所知。 C1 和 C2 連接到 S1,並且 S1 維護有關它們的某些狀態。 S1 定期與 S2 共享 C1 和 C2 的當前狀態。在某個時刻,C1 與 S1 斷開連接並連接到 S2。 S2 對 C1 的狀態稍微陳舊,並且可以在沒有任何中斷的情況下大部分時間接手處理 C1。

同時,C3 和 C4 連接到 S2,並且發生了大致相同的事情。 S2 維護 C3 和 C4 的狀態並定期向 S1 通報它們。如果 C3 移動到 S1,它已經具有稍微陳舊的狀態。

我考慮了 MQTT,讓每個伺服器發布它所知道的內容並訂閱它可能想知道的內容,但我預期的資料量不太適合 MQTT 的用例。 (可能有 256k 或更多客戶端。FWIW,客戶端特定資料約為 64 位元組。)

我想到了 Redis,但似乎不太正確,因為複製似乎將整個實例從主伺服器複製到副本,這裡我擁有每個伺服器擁有(或最後更新)的部分資料。

如果 Redis 不是合適的工具,我有什麼選擇?

TIA。

相關內容