zoukankan      html  css  js  c++  java
  • redis哨兵机制配置

    1.redis-3.2.100下载:

    redis-3.2.100的32位下载:https://pan.baidu.com/s/107xVp6LGT24Fq3GUcAwjNw 提取码:7aqm

    redis-3.2.100的64位下载:https://pan.baidu.com/s/1MsF2fzd9XYJP-vvV2P6wPQ 提取码:3uqh

    根据自己系统的位数下载对应版本即可。

    =====================================

    哨兵模式主要针对于主从服务做的高可用机制。所以需要先配置好redis的主从节点。

    关于redis的主从配置参考:https://www.cnblogs.com/super-chao/p/15138986.html

    =====================================

    2.配置哨兵服务并启动:

    配置好主从后,配置哨兵模式。哨兵模式检测master是否宕机,如果宕机,将选举slave为新的master。

    复制3个redis文件,如图所示:

    在sentinel的文件夹下新建文件sentinel.conf和启动文件sentinel_1.bat:

    sentinel.conf的内容为:

    port 16479
    # 主节点名称 IP 端口号 选举次数
    sentinel monitor mymaster 127.0.0.1 6479 1
    # 心跳检测,多长时间检测一次master是否挂了
    sentinel down-after-milliseconds mymaster 5000
    # 最多多少个节点
    sentinel failover-timeout mymaster 15000

    sentinel_1.bat的内容为:

    title sentinel_16479
    redis-server.exe sentinel.conf --sentinel

    其他sentinel文件夹下重复以上操作,只是port要设置为自定义端口号且不冲突。我监测的mymaster是6479端口。sentinel_1.bat修改titile为对应的端口号,用于区分dos窗口。

    分别启动三个sentinel哨兵服务,启动后如图,说明启动成功:

     其他两个sentinel一样。

    3.测试哨兵机制:

    启动6479,64791,64792的redis服务。

     64791,64792一样。

    新打开一个cmd窗口,cmd到任意一个redis根目录下,执行命令redis-cli -p 6379.

    执行info replication查看节点信息:

     表明6479是master,64791和64792是slave。

    ctrl+c退出,redis-cli -p 64791切换到64791,执行info replication:

     表明64791是从节点,主节点是6479.

    当我关闭master的dos窗口时,6479的服务会关闭,此时模拟宕机。查看在哨兵机制下,主节点宕机,从节点选举为master的过程。

    哨兵服务窗口会打印选举master的日志:

     此时64792变成了master:

     64791的master变成了64792:

     重启6479后,6479会变为从节点,它的master是64792:

     

     64792变成了master,节点信息如下:

    总结:

    在哨兵模式监测下,会通过ping主节点,不断监测master是否宕机,如果master宕机,就会通过选举机制从从节点中选出master。

    sentinel会改变每个redis服务的配置redis.windows.conf中的slaveof。

    上例中原来的配置为6479无slaveof, 64791的slaveof是6479, 64792的slaveof是6479.

    哨兵机制选举后,配置改变:6479的slaveof是64792, 64791的slaveof是64792, 64792的slaveof被删除。

    以64791为例,查看64791的redis.windows.conf配置:

     同时每个哨兵服务的sentinel.conf配置信息也被修改。

     sentinel monitor mymaster 127.0.0.1 6479 1改变成了sentinel monitor mymaster 127.0.0.1 64792 1。

    以6479_sentinel_1为例:

     至此,哨兵机制配置和测试完成。

    从上面可以看出哨兵机制的作用:

    解决redis高可用问题。

    主节点的高可用性。

    注意:

    先有主从同步,然后才有哨兵机制。

    哨兵机制(心跳)。

    哨兵和redis没有任何关系,是一个单独的应用程序。

    心跳检测(ping的方式),检测master是否正常,如果不正常,通过哨兵模式的选举机制,选举新的master。
    不正常的服务重启后会变成slave。

  • 相关阅读:
    RocketMQ Message hasn't been sent. Caused by No route info of this topic, test-topic
    Barrier
    WPF之资源
    WPF之命令
    WPF之事件
    WPF之属性
    多路Binding
    Binding的数据转换
    Binding的数据校验
    为Binding指定源的方法
  • 原文地址:https://www.cnblogs.com/super-chao/p/15139459.html
Copyright © 2011-2022 走看看