在第一个用例的官方文档Galera Use Cases中,我阅读了以下内容:
“传统的 MariaDB 主从拓扑,但对于Galera,所有“从属”节点在任何时候都是有能力的主节点——只是将它们视为从属节点的应用程序。Galera 复制可以保证此类安装的零从属滞后,并且由于并行从属节点应用,集群的吞吐量要好得多。”
不清楚,为什么任何应用程序都应将除一个节点以外的所有节点都视为从节点?它需要额外的努力来拆分读取和写入 SQL 命令,如果可能的话,我的意思是取决于应用程序开发风格。(我确实知道 MaxScale readwritesplit,但这不是这里的主题)
问题
为什么任何应用程序都应将除一个节点之外的所有节点都视为 Galera 集群中的从属节点?
引用的段落描述了一个“用例”,但不一定“推荐”它。
另一方面,如果一个节点出现故障,如果其他节点已经可写并且可以通过代理访问,那么(对于 DBA 来说)工作量就会减少。
我同意你的看法,将其设计为所有节点都是可读写的。并提供一些代理机制。并在设置前加上“critical”,
SELECTs
以确保数据已被刷新。“保证零从属滞后”正在拉长它。但非常接近。