17-节点的增加
8.3.2 节点的增加
前面介绍过redis-trib.rb是使用 CLUSTER MEET 命令来使每个节点认识集群中的其他节点的,可想而知如果想要向集群中加入新的节点,也需要使用 CLUSTER MEET 命令实现。加入新节点非常简单,只需要向新节点(以下记作A)发送如下命令即可:
CLUSTER MEET ip port
ip 和 port 是集群中任意一个节点的地址和端口号,A接收到客户端发来的命令后,会与该地址和端口号的节点B进行握手,使B将A认作当前集群中的一员。当B与A握手成功后,B会使用Gossip协议3将节点A的信息通知给集群中的每一个节点。通过这一方式,即使集群中有多个节点,也只需要选择 MEET 其中任意一个节点,即可使新节点最终加入整个集群中。
3 Gossip 是分布式系统中常用的一种通信协议,感兴趣的读者可以自行查阅相关资料查看具体信息。