1、消息类型划分
节点间发送的消息主要分为 5
种:meet 消息
、ping 消息
、pong 消息
、fail 消息
、publish 消息
。不同的消息类型,通信协议、发送的频率和时机、接收节点的选择等是不同的:
2、特点介绍
- MEET 消息: 在节点握手阶段,当节点收到客户端的
CLUSTER MEET
命令时,会向新加入的节点发送MEET
消息,请求新节点加入到当前集群;新节点收到 MEET 消息后会回复一个PONG
消息。 - PING 消息: 集群里每个节点每秒钟会选择部分节点发送
PING
消息,接收者收到消息后会回复一个PONG
消息。PING 消息的内容是自身节点和部分其他节点的状态信息,作用是彼此交换信息,以及检测节点是否在线。PING
消息使用 Gossip 协议发送,接收节点的选择兼顾了收敛速度和带宽成本,具体规则如下:(1)随机找 5 个节点,在其中选择最久没有通信的 1 个节点;(2)扫描节点列表,选择最近一次收到PONG
消息时间大于cluster_node_tim