redis cluster 总体架构:
1、在这个图中,每一个redis服务器节点,它们任何两个节点之间都是相互连通的。客户端可以与任何一个节点相连接,可以访问集群中的任何一个节点,对其进行存取和其他操作。
2、集群节点属性
集群中每个Master node负责存储数据、集群状态,包括slots与nodes对应关系。Master nodes能够自动发现其他nodes,检测failure节点,当某个Master节点失效时,集群能将核实的Slave提升为Master。下图是节点的关联信息,节点定时会将这些信息发送给其他节点:
从左至右分别是:
节点ID、IP地址和端口、节点角色标志、最后发送ping时间、最后接收到pong时间、连接状态、节点负责处理的hash slot。
3、各节点通过Gossip进行通讯
cluster 服务端节点直接使用 gossip 协议进行节点间通信,可以自动识别出ip/port的变化,并通过Gossip(最终一致性,分布式服务数据同步算法)协议广播给其他节点知道。Gossip也称“病毒感染算法”、“谣言传播算法”。
(1)主要使用 cluster meet ,ping ,pong 三个命令来完成。