[英]Sharding with replication
我感觉您没有充分解释为什么要尝试这种奇怪的拓扑。
无论如何,我会指出一些与 MySQL/MariaDB 有关的事情。
一个暂定的解决方案:
拥有所有服务器上的所有数据。 对所有节点使用相同的 Galera 集群。
优势:当“大部分”或所有网络都在工作时,所有数据都可以快速双向复制。
潜在的缺点:如果一半或更多的节点出现故障,您必须手动介入以使集群再次运行。
“缺点”的可能解决方案:以不同的方式“加权”节点。 给总部 3 号的身高权重; 给每个分支节点一个小得多(但非零)的权重。 这样,大多数分支机构都可以离线而不会丢失整个系统。
但是......我担心离线分支节点会自动变为只读。
另一个计划:
切换到 NDB。 网络是脆弱的。 一致性是通过“最终一致性”而不是 Galera+InnoDB 的“[虚拟]同步复制”来维护的。
NDB 允许您立即在任何节点上写入。 然后将写入发送到其他节点。 如果存在冲突,则将其中一个值声明为“赢家”。 您选择确定获胜者的算法。 一个易于理解的是“无论哪个写是'第一个'”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.