当前位置:主页 > 数据库 > Redis >

浅析redis cluster介绍与gossip协议

时间:2021-12-12 11:58:06 | 栏目:Redis | 点击:

一、redis cluster 介绍

redis cluster架构下的每个redis都要开放两个端口号,比如一个是6379,另一个就是加1w的端口号16379。

二、节点间的内部通信机制

集群元数据的维护有两种方式:集中式、Gossip 协议。
redis cluster 节点间采用 gossip 协议进行通信。

1. 集中式

将集群元数据集中存储在一个节点上。典型代表是大数据领域的 storm。它是分布式的大数据实时计算引擎,是集中式的元数据存储的结构,底层基于 zookeeper对所有元数据进行存储维护。

优点

元数据的读取和更新时效性非常好,元数据的变更都能立即更新到集中式存储节点中,其它节点读取的时候就可以感知到;

缺点

所有的元数据的更新压力全部集中在一个地方,可能会导致元数据的存储有压力。

2. gossip 协议

redis 维护集群元数据采用的是gossip 协议,所有节点都持有一份元数据,不同的节点如果出现了元数据的变更,就不断将元数据发送给其它的节点,让其它节点也进行元数据的变更。

优点

元数据的更新比较分散,不是集中在一个地方,降低了压力;

缺点

元数据的更新有延时,可能导致集群中的一些操作会有一些滞后。


三、深入剖析gossip 协议

gossip 协议包含多种消息,包含 ping、pong、meet、fail等等。

meet:某个节点在内部发送了一个gossip meet 消息给新加入的节点,通知那个节点去加入我们的集群。然后新节点就会加入到集群的通信中

redis-trib.rb add-node

继续深入剖析ping消息

10000 端口:
每个节点都有一个专门用于节点间通信的端口,就是自己提供服务的端口号+10000,比如 6379,那么用于节点间通信的就是16379端口。每个节点每隔一段时间都会往另外几个节点发送 ping 消息,同时其它几个节点接收到 ping 之后返回 pong。
交换的信息:信息包括故障信息,节点的增加和删除,hash slot 信息等等。

总结

您可能感兴趣的文章:

相关文章