redis cluster 一个问题:双master不能在一个虚拟机/物理机上
标题说的有点不够明确 :双master不能在一个虚拟机上,指的是三主三从结构,并且一个虚机部署一个master 和一个slave 问题如下 :6台虚机(每台3g内存),做三主三从结构 原因如下: 因为redis cluster 官方的侦听节点fail的策略是: 通过集群中超过半数的master节点检测失效时才生效. 所以使用三台虚机来搭建会出现一定问题: 比如三台虚拟交叉部署,
标题说的有点不够明确 :双master不能在一个虚拟机/( 或物理机)上,指的是
三主三从结构,并且一个虚机部署一个master 和一个slave 问题如下 :
6台虚机(每台3g内存),做三主三从结构
原因如下:因为redis cluster 官方的侦听节点fail的策略是:
通过集群中超过半数的master节点检测失效时才生效.
所以使用三台虚机来搭建会出现一定问题:
比如三台虚拟交叉部署,每台上面1个master 1个slave
当某台A虚机上面的msater挂掉后,某一台虚机B上面的slave会接替,
成为一个master,B服务器上面会有两个master,当服务器B意外宕机后,
集群超过半数的master宕机,不会认为B上面的redis 节点宕机,
就无法实现主从切换,集群会出现问题。
所以每台虚机上只部署一个redis节点,可回避这种情况。
还有一个解决方式 就是做成4台机器,4主4从. 也可以回避半数的问题
3台的话 有点尴尬
参考:
http://hot66hot.iteye.com/blog/2050676
架构细节:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
(2)节点的fail是通过集群中超过半数的master节点检测失效时才生效.
(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->key
写完 发现有其他的哥们也遇到这个问题。。
https://blog.csdn.net/zlfprogram/article/details/74225305
要fail掉一个主需要一半以上主都投票通过才可以
更多推荐
所有评论(0)