- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
你好堆栈社区,
我有一个关于 Redis sentinel 的问题,用于特定的问题案例。我将 AWS 与多可用区结合使用来创建一个 sensu 集群。
在 eu-central-1a 上,我有一个 sensu+redis(M)、一个 RBMQ+Sentinel 和另外 2 个 Sentinels。在 eu-central-1b 上也是如此,但 redis 是我在这个 AZ 上的奴隶。
如果出现问题并且 eu-central-1a 无法与 eu-central-1b 通信怎么办?我认为 eu-central-1b 上的 Sentinel 应该将我的 redis slave 提升为 master,因为他无法联系我的 redis master。所以我应该让 2 个 redis master 在 2 个不同的 AZ 上一起运行。
但是当 AZ 之间的链接被检索时,我仍然会有 2 个母版,有 2 个不同的数据。在这种情况下会发生什么?一个master变成slave,数据可以无损复制?我们是否需要重启一个主人,他将成为一个奴隶?
最佳答案
例如,Sentinel 检测 master 的变化
如果 master 宕机并且无法访问,则会选举一个新的 slave。这是基于 quorum
,其中多个哨兵同意 master 已关闭。 故障转移
然后发生。
一旦哨兵检测到主人重新上线,我相信它就是一个奴隶,因此我相信新的主人会继续。在从 master 到新 master 的切换中,您将不可避免地丢失数据。
如果您失去连接,那么 yes sentinel 将无法正常工作,因为它依赖于多个 sentinel 来同意主 redis 已关闭。您不应该在 2 个哨兵系统中使用哨兵。
基本解决方案是在另一台服务器上放置一个额外的哨兵,也许是未运行 redis/sentinel 的客户端/应用程序服务器,这样您就可以利用 quorum
和哨兵同意主人下来了。
关于多 az netsplit 后具有 2 个主节点的 Redis Sentinel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38585178/
你好堆栈社区, 我有一个关于 Redis sentinel 的问题,用于特定的问题案例。我将 AWS 与多可用区结合使用来创建一个 sensu 集群。 在 eu-central-1a 上,我有一个 s
我是一名优秀的程序员,十分优秀!