对于分布式、面向行的数据库,我有哪些选择?

对于分布式、面向行的数据库,我有哪些选择?

(如果这不是正确的论坛,请见谅。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 不是合适的工具,我还有什么选择?

短暂性脑缺血。

相关内容