Redis cluster自动化slave迁移

发布 : 2017-06-28 分类 : 大数据 浏览 :

slave的自动迁移

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
比如现在有10个master,每个有1个slave,然后新增了3个slave作为冗余,有的master就有2个slave了,有的master出现了salve冗余

如果某个master的slave挂了,那么redis cluster会自动迁移一个冗余的slave给那个master

只要多加一些冗余的slave就可以了

为了避免的场景,就是说,如果你每个master只有一个slave,万一说一个slave死了,然后很快,master也死了,那可用性还是降低了

但是如果你给整个集群挂载了一些冗余slave
那么某个master的slave死了
冗余的slave会被自动迁移过去,作为master的新slave,此时即使那个master也死了

还是有一个slave会切换成master的

之前有一个master是有冗余slave的
直接让其他master其中的一个slave死掉
然后看有冗余slave会不会自动挂载到那个master

查看7005 master的slave

1
可以发现7005 master的slave是232的7004
1
2
3
4
5
6
7
8
9
10
11
12
[root@matrix-cache03 redis]# redis-cli -h 192.168.31.233 -p 7005
192.168.31.233:7005> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.31.232,port=7004,state=online,offset=49239,lag=0
master_repl_offset:49239
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:49238
192.168.31.233:7005> exit

kill掉7005的slave

1
2
3
4
5
6
[root@matrix-cache02 ~]# ps aux | grep redis
root 882 0.1 0.1 31144 1840 ? Ssl 12:55 0:38 /usr/local/bin/redis-server 192.168.31.232:6379
root 948 0.1 0.2 31604 2396 ? Ssl 13:10 1:03 /usr/local/bin/redis-server 192.168.31.232:7004 [cluster]
root 1261 0.1 0.2 35700 2448 ? Ssl 20:13 0:21 /usr/local/bin/redis-server 192.168.31.232:7003 [cluster]
root 1400 0.0 0.0 5976 768 pts/0 S+ 23:18 0:00 grep redis
[root@matrix-cache02 ~]# kill -9 948

发现冗余的slave会被自动迁移过去

Markdown

Markdown

本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2017/06/28/Redis cluster自动化slave迁移/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹