很难理解一些事情。我在网关后面有两个复制的服务主机(A 和 B)(将来可能会扩展到最多 3 个)。每个服务主机都需要保存其各自主机的一些数据/状态(键值)。为避免 SPOF,需要将相同的状态/数据复制到两台主机,以便如果一台服务器出现故障,则另一台服务器应该可以提供服务。请提出一些解决此问题的机制。(如果有任何分布式框架,要非常具体)
主从复制:主机 A 为主,主机 B 为从。但我的问题是:
- 来自主机 B 的所有写请求都将通过主机 A 路由,然后最终到达 B。
- 此外,假设主机 A 出现故障,那么将没有写入,B 将卡住直到 A 恢复。
我的理解是否正确,不能在奴隶中完成写入?如果有一些解决方法,例如将从站升级为主站,仍然存在重新路由问题,如前所述。
我认为可以使用其他方法(多主和无领导)来实施解决方案,但无法得出任何结论。我尝试比较其中的几个:
- Redis - 默认情况下它是主从,但企业版也有主主配置。所以可能是一个可能的解决方案。
- Dynamo 风格 - Riak、Cassandra、Voldemort 等。不确定所涉及的复杂性
要求:
- 解决方案必须更简单、更轻量,且不消耗大量服务主机资源。
- 数据采用键值格式
- 读/写应该非常快。(内存中会更好)
- 读/写动作的发生/频率不是很快。
- 数据量也非常少。在任何时候,任何主机上的数据总大小不得超过 1 mb。