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

Redis哨兵模式(sentinel)

2018-03-07 10:42 357 查看
演示:已有一个端口号为6379的redis主节点和端口号为1011的从节点1,要在同一台主机安装端口号为2022 的redis从节点2和 sentinel-1、sentinel-3、sentinel-3三个哨兵组成的哨兵节点集合,实现故障自动转移。

平台:red hat linux

版本:redis-4.0.6

整个的主从及哨兵架构配置如下:

节点 ip port

主节点 master 127.0.0.1 6379

从节点1 slave-1 127.0.0.1 1011

从节点2 slave-2 127.0.0.1 2022

sentinel节点1 sentinel-1 127.0.0.1 12123

sentinel节点2 sentinel-2 127.0.0.1 12124

sentinel节点3 sentinel-3 127.0.0.1 12125

一:建立主节点 master

节点 ip port

主节点 master 127.0.0.1 6379

参考 Redis安装卸载

二:建立从节点 slave

节点 ip port

从节点1 slave-1 127.0.0.1 1011

从节点2 slave-2 127.0.0.1 2022

参考 Redis复制, 安装2022端口的从节点2

从节点2参考:修改这个redis2022.conf 文件的部分参数如下:
[root@single-instance redis-4.0.6]# vi redis2022.conf
bind 127.0.0.1
port 2022
daemonize yes
pidfile /var/run/redis_2022.pid
logfile /var/run/redis_2022.log
dbfilename dump_2022.rdb

端口为2022的从节点2设置好后,在6379主节点查看主从信息如下:
127.0.0.1:6379>  info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=1011,state=online,offset=1680,lag=0
slave1:ip=127.0.0.1,port=2022,state=online,offset=1680,lag=0
master_replid:2849d350165877266afa5e5ebd3b2815a42ba626
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1680
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:1680


三:建立sentinel节点

建立sentinel节点1的conf文件

[root@single-instance redis-4.0.6]# cp sentinel.conf  sentinel12123.conf
[root@single-instance redis-4.0.6]# vi sentinel12123.conf bind 127.0.0.1
port 12123
dir /var/run/sentinel_12123
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

/*注释
port 12123                                端口是12123
sentinel monitor mymaster 127.0.0.1 6379 2     监控ip为127.0.0.1 端口为6379的主节点服务器,2是判断主节点的sentinel数量
节点之间通过ping来确定
sentinel down-after-milliseconds mymaster 30000 超过设置时间没有ping通redis节点和其他sentinel节点,判定超时
sentinel parallel-syncs mymaster 1             故障转移到新的主节点时,从节点的复制节点数量
sentinel failover-timeout mymaster 180000        故障转移时间
*/

启动sentinel节点1
[root@single-instance redis-4.0.6]# src/redis-sentinel  sentinel12123.conf
10947:X 06 Mar 21:23:56.824 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
10947:X 06 Mar 21:23:56.824 # Redis version=4.0.6, bits=64, commit=00000000, modified=0, pid=10947, just started
10947:X 06 Mar 21:23:56.824 # Configuration loaded
10947:X 06 Mar 21:23:56.824 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-``    `.  `_.  ''-._           Redis 4.0.6 (00000000/0) 64 bit
.-`` .-```.  ```\/    _.,_ ''-._
(    '      ,       .-`  | `,    )     Running in sentinel mode
|`-._`-...-` __...-.``-._|'` _.-'|     Port: 12123
|    `-._   `._    /     _.-'    |     PID: 10947
`-._    `-._  `-./  _.-'    _.-'
|`-._`-._    `-.__.-'    _.-'_.-'|
|    `-._`-._        _.-'_.-'    |           http://redis.io `-._    `-._`-.__.-'_.-'    _.-'
|`-._`-._    `-.__.-'    _.-'_.-'|
|    `-._`-._        _.-'_.-'    |
`-._    `-._`-.__.-'_.-'    _.-'
`-._    `-.__.-'    _.-'
`-._        _.-'
`-.__.-'

10947:X 06 Mar 21:23:56.831 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
10947:X 06 Mar 21:23:56.842 # Sentinel ID is 1a34cd5220ef529f215cc8684a5871814daa45b1
10947:X 06 Mar 21:23:56.842 # +monitor master mymaster 127.0.0.1 6379 quorum 2

登录sentinel节点1客户端查看 sentinel监控的主节点信息,单目前只有一个sentinel=1
[root@single-instance src]# ./redis-cli -h 127.0.0.1 -p 12123 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=1

同样的设置sentinel节点2和节点3,并启动
再次查看 sentinel监控的主节点信息,有了三个sentinel=3
[root@single-instance src]#  ./redis-cli -h 127.0.0.1 -p 12123 info Sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: