Juju MySQL 添加单元与添加具有关系的新服务

Juju MySQL 添加单元与添加具有关系的新服务

向 MySQL 添加单元有什么意义?为什么不直接创建与主节点相关的新服务?

MySQL 不支持多主节点,因此向一个 MySQL 服务添加单元没有任何意义。如果我创建第二个服务作为从属服务,并向其添加单元以充当多个从属服务,这仍然没有意义,因为如果主从属服务器死机,则连接到它的所有单元也会变得无用。

有人能解释为什么我应该向 MySQL 添加单位吗?

答案1

我会试一下:

MySQL 不支持多主节点,因此向一个 MySQL 服务添加单元没有任何意义。

MySQL Community Server支持多主节点是正确的。对于多主节点设置,您需要MySQL Cluster或分叉。我还可以确认,在撰写此答案时,不存在 Juju Charm MySQL Cluster。但MySQL Community Server通过其复制支持其他高可用性机会。最明显的一个是故障转移期间切换主服务器。

如果你仔细观察MySQL Charm 的实现我们可以看到下面的hooks\ha*东西,我可能认为是主开关。不过,我还没有深入研究,因此无法确认它就是那个。

为什么不直接创建与主节点相关的新服务?

首先,如果我们从上面的答案中考虑到主服务器切换,那么将单元添加到主服务器是否有意义MySQL Charm,因为它将为其提供一个副本池,这些副本可以在发生故障时切换为新的主服务器。另一方面,将新服务定义为从属并赋予它与主服务器的关系将使它们保持从属状态。

如果主从服务器死机,则与其连接的所有单元也将变得无用

这并不完全正确,因为从属服务器很乐意为读取请求提供服务。MySQL 副本也可以“强制”为写入/更新请求提供服务,但强烈建议不要这样做,因为这会带来很大的语义复杂性。

根据答案这个问题由 Canonical Juju-core 成员 Dimiter Naydenov 编写,正在向 MySQL Charm 添加更多单元,但不创建复制从属。

如果额外的单元节点能够被提升为新的主节点,那么这种行为是否有必要呢?因此,我最好的猜测是,如果他的答案仍然成立的话,它浪费了单元,用于邀请人们为其做出贡献。

一个你可能会感兴趣或启发的项目,可能是这个

欢迎改进和更正。

相关内容