Redis入门——哨兵Sentinel安装与部署

桥本环奈(づ。◕ᴗᴗ◕。)づ

本文简单聊聊Sentinel哨兵的安装部署(参考付磊、张益军两位大神的《Redis开发与运维》
环境:Ubuntu 18.04.1 LTS

部署拓扑结构

我们如图这样部署拓扑结构,有3个Sentinel节点、一个Master节点、两个Slave节点组成的Redis Sentinel。


Redis Sentinel安装拓扑图

部署Redis数据节点

  1. 启动Master主节点
    在redis目录下的复制个配置副本,起名为redis-6379.conf,在里面添加
port 6379
daemonize yes
logfile "log_6379.log"
dbfilename "dump_6379.rdb"
dir "/redis/data/"

启动主节点(后台启动,进入redis所在目录运行):

redis-server redis-6379.conf

确认是否启动:

redis-cli -h 127.0.0.1 -p 6379 ping

如果结果为PONG,说明节点启动了

  1. 启动Slave节点
    与主节点启动方式相同,启动完成后,配置主从关系:
slaveof 127.0.0.1 6379

同样用ping来判断从节点是否启动成功,也可以通过ps命令查看:

ps -ef | grep redis

部署Sentinel节点

  1. 配置Sentinel节点
    在redis目录下再复制个副本,重命名为redis-sentinel-26379.conf,加上配置:
port 26379
daemonize yes
logfile "sentinel_26379.log"
dir "/redis/data/"
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
  • Sentinel节点的默认端口是26379
  • sentinel monitor mymaster 127.0.0.1 6379 2配置代表Sentinel节点需要监控127.0.0.1:6379节点,2表示判断主节点失败至少需要2个Sentinel节点同意(客观下线),mymaster是主节点的别名
  1. 启动Sentinel节点
  • 方法一,
redis-sentinel redis-sentinel-26379.conf
  • 方法二,
redis-server redis-sentinel-26379.conf --sentinel
  1. 确认
    Sentinel节点本质上是一个特殊的Redis节点,通过info Sentinel可查询相关信息。

部署技巧和注意事项

  1. Sentinel节点建议不要部署在同一台物理机上
    目前比较流行一台物理机做成若干虚拟机或者时下流行的容器,虽然他们有不同的IP地址,但实际上还是同一台物理机,如果出现硬件故障,会波及所有。所以请不要将Sentinel节点部署到同一台物理机上。
  2. 部署至少三个且奇数个Sentinel节点
    这是出于领导者选举的考量,领导者选举需要Sentinel节点半数+1,部署奇数个可以满足条件之外节省一个节点。

部署方案选择

Redis Sentinel部署的时候,Sentinel节点集合可以监控一个主节点,也可以监控多个主节点,也就是下面两种拓扑图

一套Sentinel集合监控多个主节点

一套Sentinel集合监控一个主节点

方案一:一套Sentinel集合监控多个,这种方案一定程度上降低了维护成本,只需要维护固定数目的Sentinel节点,放更多的精力在多个Redis节点管理上。但是如果这套Sentinel集合出现异常,可能会对多个Redis节点造成影响。并且如果监控的Redis节点数量很多,Sentinel节点监控需要很多的网络连接,很影响监控效果。
方案二:一套Sentinel集合监控一个,这种方案优缺点与方案一是完全相反。做到了Sentinel彼此隔离,但也会造成Sentinel资源浪费。
P.S. 如果Sentinel节点集合监控的是同一个业务的多个主节点集合,那采用方案一,否则采用方案二

你可能感兴趣的:(Redis入门——哨兵Sentinel安装与部署)