嗨,我已经创建了一个由3个aws实例组成的带有哨兵的集群Redis,我已经将哨兵配置为有一个HA redis集群和工作,但是如果我模拟主(主实例的关闭)崩溃,安装在奴隶上的哨兵,没有找到主人的哨兵,选举失败。我的哨兵配置是:
sentinel monitor master ip-master 6379 2
sentinel down-after-milliseconds master 5000
sentinel failover-timeout master 10000
sentinel parallel-syncs master 1对所有实例相同的文件
发布于 2015-10-14 15:11:44
在与主节点相同的节点上运行哨兵并试图触发故障转移时会出现问题。试着在主人身上运行哨兵。最终,这意味着不能在与Redis实例相同的节点上运行Sentinel。
在您的示例中,您的死节点模拟显示了为什么不应该在与Redis相同的节点上运行Sentinel :如果节点死亡,您将失去一个哨兵。从理论上讲,它应该仍然有效,但正如你和其他人所看到的那样,它不一定会起作用。我有一些理由,但我还没有证实。
从某种意义上说,哨兵在一定程度上是一个监控系统。在被监视的同一节点上运行监视解决方案通常是不可取的,因此无论如何您都应该使用非节点哨兵。由于哨兵是资源高效的,所以不一定需要专用机器或大型VM。实际上,如果您有一组静态的应用程序服务器(客户端代码运行的地方),那么您应该在那里运行哨兵,同时要记住,您需要最少3个50%+1和一个仲裁。
发布于 2018-05-15 14:43:28
最近的redis版本引入了“保护模式”选项,默认为yes。
如果将保护模式设置为yes,则没有密码设置的redis实例将不允许远程客户端执行命令。
这也会影响哨兵的选举。
试着在哨兵中设置“保护模式否”。这样他们就可以互相交谈了。
发布于 2018-06-30 00:34:14
如果您不想将保护模式设置为否。你最好在中设置redis.conf中的myredis,并在sentinel.conf中使用sentinel auth-pass mymaster myredis。
https://stackoverflow.com/questions/33081343
复制相似问题