标题说的有点不够明确 :双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掉一个主需要一半以上主都投票通过才可以

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐