您的位置:首页 > 数据库 > Redis

基于Centos7系统搭建Redis集群之哨兵机制(新手教程)

2019-04-03 17:23 399 查看

      昨天将主从复制写了下,但是没有写哨兵机制,所以今天就给填补下;

   

哨兵(sentinel)在系统中主要有以下三个任务:

监控(monitoring):哨兵(sentinel)会不断的检查你的Mater和Slave是否运行正常。

提醒(Notification):当被监控的某个redis出现问题时,哨兵(sentinel)可以通过API向管理员或者其他应用程序发送通知;

自动故障迁移(automatic failover)当一个master不能正常工作时,哨兵(sentinel)会开始一次自动故障迁移操作,他会将失效master的其中一个slave升级为新的master,并让实现的Master的其他slave改为复制新的master,当客户端试图连接失效的master时,集群也会向客户端返回新的master地址,使得集群可以使用master代替失效的master;

哨兵(sentinel)是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel)进程

进程使用流言协议(gossipprotocols)来接收关于master是否下线的消息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个slave作为新的master;

每个哨兵(sentinel)会向其他哨兵(sentinel)、master、slave定时发送消息,以确认对方是否还活着,如果对方在指定的时间(可配置)内未回应,则在暂时认为对方已挂;若多个sentinel都报某一个master没有响应,系统才认为该master彻底死亡;

其实哨兵也是运行在特殊模式下的Redis服务器;

  在还没有写之前,我想先强调下:

      哨兵机制会使用权重来选举新的主服务器,然后将数据写到配置文件中,所以当你原来的主服务器宕机后,在重启后后他就是从服务器了

      哨兵机制是redis自带的服务,也就是说redis既可以用来做redis服务器,又可以用来做哨兵机制,(是不是感觉有种雌雄同体的感觉,哈哈哈~~~~~~)

其实哨兵机制没有想的那么难,只不过很听起来高大上,(此时你可以把它想成娶了漂亮媳妇的富二代,不是因为他很帅很有成就,只不过他爹很耐坑,你要是有个很耐坑的爹,说不定你也可以=V=)

       首先我们进入到redis文件夹中,将sentinel.conf拷贝到你redis.conf的文件夹中,我的redis.conf放到了  /etc/redis/   文件夹中,所以你要适量的更改下:命令如下:

[code]cp sentinel.conf /etc/redis/               # 将redis.conf文件拷贝到etc/redis/文件夹下

然后就是修改sentinel.conf配置文件

[code]vi sentinel.conf

然后主要是修改下面几条配置

[code]sentinel monitor mymaster 192.168.50.132 6379 1            # 添加监控的主服务器
sentinel down-after-milliseconds mymaster 300              # 默认的刷新时间是30000微秒,现在改成300微秒
sentinel parallel-syncs mymaster 2                         #设置有效的从服务器个数,我的有两个就设置两个
sentinel auth-pass mymaster 123456                         #设置主服务器的密码,如果你没有设置你就可以不进行设置,建议一个集群的主从服务器的密码设置成一样的,避免连接不上

当配置完这些,就可以启动我们的哨兵了

启动命令如下:

[code]/home/soft/redis-4-0-9/redis-server /etc/redis/sentinel.conf --sentinel &
# 启动哨兵,需要启动redis-server和sentinel.conf两个文件,  --sentinel &  不要省略不然启动不起来

为了方便启动,我还是建议将上面的命令写到以 .sh 后缀结束的脚本中,每次只用启动脚本就可以了!!!

[code]vi sentinel_start.sh                      # 使用vi创建整个文件
#在文件中写上刚才的代码
/home/soft/redis-4-0-9/redis-server /etc/redis/sentinel.conf --sentinel &

然后按 “ Esc ” --->  Shift+:---->输入“wq”就可以了

下回启动sentinel时,只用输入下面的命令就可以了;

[code]sh sentinel_start.sh

好了,配置就到这里,下面就是我创建的

哨兵

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: