gpt4 book ai didi

mysql - Galera Cluster 为断开连接的节点启用了数据库写入

转载 作者:行者123 更新时间:2023-11-29 16:19:05 24 4
gpt4 key购买 nike

我们有 5 个岛屿,其中有 Galera 节点。岛屿上的互联网经常断线。当节点断开连接时,其表将被锁定以进行读写。但它会同步并在互联网恢复时可用。在MariaDB Replication中,断开连接的节点可以进行读写,但这不是一个好的解决方案。

是否可以在 Galera 断开连接的节点上进行读写?对于这种情况还有其他解决方案吗?

最佳答案

对于非常不稳定的网络来说,Galera 或许不是正确的解决方案。

如果每个岛屿都有自己的“足够”可靠的服务器,那么问题就解决了一半。将数据传入(或传出)其他岛屿需要通过方案背后的应用程序代码来完成。

架构和数据流设计需要避免在不同的岛屿上同时创建唯一(或主)键的各种情况。 UUID 是一种解决方案,但它对于大型数据库来说表现不佳。

还有“陈旧”数据的问题。如果一个孤岛上的服务器拥有来自其他岛屿的“旧”数据,用户是否会通过处理这些过时的数据来搞砸事情?

底线:要么努力让网络更加健壮,要么倒立着让应用程序健壮。

替代方案...

超过 2 个的循环确实很糟糕。任何中断都会使其余部分处于奇怪的状态——有些复制正在发生,有些则没有。如果服务器真的挂掉了,那么修复起来就是一场噩梦。

多源复制...鉴于您拥有小型数据库,并且 ER 岛间访问是只读的,这可能是一个很好的解决方案。您有一台服务器是所有其他服务器的从属服务器。也就是说,每个岛屿都有一个主站,并且(当网络工作时)将内容复制到该公共(public)从站。 (是否有一个岛屿更有可能保持联系?)

所有形式的复制/集群都会恢复复制,并在网络再次恢复正常后很快“ catch ”。

至于UUIDAUTO_INCRMENT——如果对任何特定表和所有相关表的所有写入都仅通过一个Island的服务器进行,​​那么我看不到需要 UUID。

(无论如何,每个岛只有 100MB,UUID 可能不会掉下性能悬崖。)

关于mysql - Galera Cluster 为断开连接的节点启用了数据库写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54610023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com