redis Sentinel(redis多机功能篇)

Sentinel

监视主从服务器,并在主服务器下线时自动进行故障转移

启动 Redis Sentinel

通过执行 Redis 安装文件夹中的 redis-sentinel 程序,可以启动一个 Sentinel 实例:
$ redis-sentinel sentinel.conf
因为 Redis 的 Sentinel 实际上就是一个运行在 Sentienl 模式下的 Redis 服务器,所以我们同样可以使用以下命令来启 动一个 Sentinel 实例:
$ redis-server sentinel.conf --sentinel
启动 Sentinel 时需要指定配置文件,该文件记录了要监视的主服务器,以及相关的配置参数,之后我们会对相关的配置选项进行介绍。
在这里插入图片描述

使用 Sentinel 监视主服务器以及它的从服务器

每个 Sentinel 实例可以监视任意多个主服务器,以及被监视的主服务器属下的所有从服务器。
在这里插入图片描述

Sentinel 网络

多个 Sentinel 实例可以监视同一个主服务器,监视相同主服务器的这些 Sentinel 们会自动地互相连接,组成一个分布式的 Sentinel 网络,互相通信并交换彼此关于被监视服务器的信息。

下图展示了一个由三个 Sentinel 实例组成的 Sentinel 网络,这三个 Sentinel 监视着主服务器 s1 以及它的两个从服务器 s2 和 s3 。
在这里插入图片描述

服务器下线判断

当一个 Sentinel 认为被监视的服务器已经下线 时,它会向网络中的其他 Sentinel 进行确认,判断该服务器是否真的已经下线。

如果下线的服务器为主服务器,那么 Sentinel 网 络将对下线主服务器进行自动故障转移:通过将下线主服务器的某个从服务器提升为新的服务器,并让其他从服务器转为复制新的主服务器,以此来让 系统重新回到上线状态。
在这里插入图片描述

自动故障转移

在这里插入图片描述

下线主服务器重新上线

在这里插入图片描述

Sentinel 的配置

指定要监视的主服务器,以及相关的监视参数

监视配置选项

Sentinel 在启动时必须指定相应的配置文件: $ redis-sentinel sentinel.conf

一个 Sentinel 配置文件至少要包含一个 监视配置选项,用于指定被监视主服务器的相关信息:
sentinel monitor

其中 name 是用户为被监视主服务器设置的名字,而 ip 和 port 则是被监视主服务器的 IP 地址和端口号,quorum 为确认这个主服务器已下线所需要的最少 Sentinel 数量。

举个例子,配置 sentinel monitor mymaster 127.0.0.1 6379 2 表示要监视的主服务器的名字为mymaster ,它的 IP 地址为 127.0.0.1 ,端口号为 6379 ,而确认这个主服务器已下线最少需要两个 Sentinel 同意。

Sentinel 可以自动发现并监视主服务器属下的所有从服务器,所以用户只需要给出主服务器的地址和端口号就可以了。

端口配置选项

如果要在同一台机器上运行多个 Sentinel 实例,用户还需要通过 port 选项来为每个 Sentinel 设置不同的端口号,如果不 进行设置,那么 Sentinel 的默认端口号为 26379 。 举个例子,如果要在同一台机器上运行两个 Sentinel 实例,用户可以通过载入以下两个配置文件来分别将两个 Sentinel 实例的端口号设置为 26379 和 26380 :

# sentinel1.conf
port 26379
sentinel monitor …
# sentinel2.conf
port 26380
sentinel monitor …
Sentinel 配置实例

执行以下两条命令,将创建两个监视主服务器 s1 的 Sentinel 实例:

$ redis-sentinel sentinel1.conf
$ redis-sentinel sentinel2.conf
其中 sentinel1.conf 的内容为:
port 26379
sentinel monitor s1 127.0.0.1 6379 2
而 sentinel2.conf 的内容为:
port 26380
sentinel monitor s1 127.0.0.1 6379 2

在这里插入图片描述

复习

本节重点

通过使用 Redis 的复制功能,用户可以创建指定服务器的任意多个复制品,每个复制品服 务器和被复制的原服务器拥有相同的数据。

通过将读请求分散给多个从服务器处理,用户可以减少主服务器在处理读请求方面的负担,并提高整个系统处理读请求的能力。

在一个既有主服务器又有从服务器的系统中,当从服务器下线时,系统处理读请求的能力将会有所下降,但整个系统仍然可以正常运作;而如果下 线的是主服务器,那么系统将因为无法处理写请求而导致停机。

通过将下线主服务器的某个从服务器提升为主服务器,并让其他从服务器转为复制新的主服务器,系统可以重新回到上线状态,这个操作我们称之为故障转移。

Sentinel 可以监视任意多个主服务器,以及主服务器属下的从服务器,并在被监视的主服务器下线时, 自动执行故障转移操作。

发布了252 篇原创文章 · 获赞 151 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39885372/article/details/104283320
今日推荐