在emq5.0之后的版本集群方案是core节点之间保持强一致性,但是core节点和复制节点并不是保持强一致性的,那就会出现不同core节点对应的复制节点数据部是强一致性的问题,这种会不会有问题?
总的来说还是一个设计取舍的问题。
异步复制的好处是
- 发布和订阅的响应会非常快
- replicant 节点从集群的同步事务解放出来,会降低 core 节点集群的脑裂风险(这和 emqx 使用的集群数据库 Mnesia有关)
当然也会有缺点,最关键的是:
- 异步复制会导致 replicant B 收到来自 relicant A 的路由更新不够及时;所以有个时间gap,在 B 上发布的消息无法路由到 A。