每个 master 的 slave 数量有什么限制?

Ran*_*Ran 5 mysql replication mysql-5.5

我目前有一个有 2 个从站的主站,都运行 MySql 5.5。

我可以连接到单个主站的从站数量有哪些限制?应该考虑哪些参数?

Rol*_*DBA 3

设置方面没有限制,但您需要了解一些方面。

您可以使用半同步复制,因为它使用一种很好的算法将 SQL 传送到从属服务器,确保至少一台服务器在从属中继日志中拥有所有最新的 SQL。(请参阅我于 2011 年 8 月 5 日发表的文章Is MySQL Replication Affected by a High-Latency Interconnect?

然而,半同步复制仅适用于 N 个 Slave 中的一个。

无论您是否有半同步复制,只要您拥有的 Slave 越多,Master 就必须执行更多的 CPU 处理才能使其 Slave 保持最新状态。

对于一个拥有 N 个 Slave 的 Master 来说,那是......

  • N条SQL语句发送给Slave
  • N 个从站 1-N 确认 SQL 已执行

对于半同步复制来说,也好不了多少,因为对于具有 N 个从属的 Master 来说,那是......

  • N条SQL语句发送给Slave
  • 从属的确认
    • 1 确认 Slave 1 收到最新的 SQL
    • N-1 从站 2-N 确认 SQL 已执行

如果您必须有许多从站,请考虑在星形拓扑中使用分布式主站

如果您无法在星形拓扑中设置分发主机,那么这是我的简单规则:使用半同步复制,但使用尽可能少的从机。