1.3.1 最终一致性

MySQL Cluster Manager 保证代理之间的最终一致性 ,这意味着:

  • 代理之间传递的任何消息要么传递给所有代理,要么不传递给所有代理(而不是传递给某些代理而被其他代理错过)。

  • 对于所有代理,任何消息序列的传递顺序始终相同(即,某些代理的消息不能乱序)。

除此之外,无法保证消息同步:无法保证在所有代理的特定时间窗口内接收和执行消息。结果是任何代理都可能由于网络流量、机器负载或线程调度等任何原因而滞后于处理消息。那么可能会出现如下情况:虽然 Agent C 落后于 Agent A 和 B,但两个 agent 已经完成了一些集群重新配置,不涉及 Agent C 的任何本地操作;连接到代理 A 或 B 的客户端可能已经收到重新配置的成功消息,而查询代理 C 的客户端被告知重新配置仍在进行中,

代理之间的这种暂时不一致不应该是一个问题。虽然代理可能会落后,但保证最终一致性意味着,除非受到网络错误或其他一些问题的阻止,否则任何滞后的代理最终都会赶上其他代理,并且所有代理最终都会获得一致的站点视图.