几天前,我在贝尔格莱德参加了一个IT会议。议程上有一个关于MySql的话题,MySql中的集群,MySql的人说他们有解决集群分裂大脑问题的最佳方案,有人知道这一点吗,这是真的还是只是一个营销技巧?

最佳答案

MySQL集群至少需要3个系统,允许其中一个节点作为仲裁器来处理分裂的大脑场景。其中两个系统可以运行data nodes/mysqld nodes,第三个系统需要运行管理节点(通常默认情况下,管理节点是仲裁器,但是SQL节点也可以作为它们运行)。
如果出现分裂的大脑设置(即两个数据节点不能再相互通信,但它们仍在运行),则它们会意识到这一点,并要求仲裁员决定允许哪个节点继续运行。如果节点无法与仲裁器对话,则它将关闭。仲裁器可以从所有节点中选择一个节点继续运行,并告诉其他节点关闭。
仲裁器通常是管理节点,但也可以是数据节点。如果仲裁器失败,那么集群可以选择一个新的仲裁器。但是,它不能在仲裁期间执行此操作,因此,如果数据节点和仲裁器同时失败,则第三个节点将关闭。
当然,当您有多个节点组时,它会变得更加复杂,但同样的基本思想也适用于这些情况。
您可以在MySQL Cluster FAQ中阅读更多关于此的信息。

10-02 05:28
查看更多