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