2024-05-02
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/3842115507

回答

Redis Cluster 中节点间采用 Gossip(流言)协议进行通信。Gossip 协议不需要集群中的所有节点都完全了解集群中每一个节点的详细信息,它的核心在于通过节点间的随机交换信息来实现整个集群中各节点的信息的最终一致性。

Redis Cluster 中,所有节点都持有一份数据,如果某个节点出现了数据变更,则该节点会把数据不断地发送给其他节点,其他节点接收到信息后进行数据变更,一段时间后,整个 Redis Cluster 集群中的所有节点都会完成数据变更,从而保证整个集群所有节点的数据都是完整的。

扩展

每个节点都有一个专门用于节点间通信的端口号,就是自己提供服务的端口号+10000。每个节点会定期向另外几个节点发送PING消息,同时其他节点接收到PING之后会返回PONG消息。

消息分类

Gossip 协议的主要职责就是信息交换,在 Redis Cluster 中,Gossip消息可分为:PING 消息、PONG 消息、MEET 消息、FAIL 消息。

PING消息