- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有 3 个 redis sentinel 盒子设置:
CLIENT (connects to S1)
|
↓
+----+
| M1 | us-east-1
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+
us-east-2 us-west-2
M1 - Master
S1 - Sentinel 1
S2 - Sentinel 2
S3 - Sentinel 3
R2 - First slave (R=replica)
R3 - Second slave
在我的 master 死后,sentinel 进行了故障转移到 R2。我将 M1 恢复在线(清除了一些磁盘空间),现在 M1 还活着并且很好,但是是 R2 的从属。是否有一种自动(或半自动)方式使 M1 再次成为主服务器,使 R2 成为 M1 的从服务器,并且我的流量再次使用 M1 作为主 Redis 实例?
本质上,我想恢复到故障转移之前的状态。
当前发生的事情是它选择 R2 作为主节点并将其重新配置为:
CLIENT (connects to S1)
|
↓
+----+
|[R2]| us-east-2
| S2 |
+----+
|
+----+ | +----+
|[M1]|----+----| R3 |
| S1 | | S3 |
+----+ +----+
us-east-1 us-west-2
当我手动进行故障转移时,它会将 R3 提升为主服务器。 (这是意料之中的)。
但是当我再次手动进行故障转移时,它会提升 R2,但我希望它会提升 M1。
所有连续的故障转移都在 R2 和 R2 之间轮换(同时始终将 M1 保持为其中任何一个的从属)。
我的 M1 从属优先级未指定,所以这意味着它的默认值为 100。我的 R2 从属优先级是 200,R2 是 300。这让我认为它应该轮换所有 3 个盒子,但在初始故障转移后它只轮换 R2 和 R3。
这对我来说像是一个哨兵
最佳答案
我认为 kiddorails 的回答是正确的,但很可能你遇到了与我类似的问题,由于某种原因你的原始母版没有正确复制。一旦我解决了我的复制问题,我就可以通过发出 SENTINEL FAILOVER mymaster
来循环我的主人。最初它只会在两个原始奴隶之间反弹,但现在我的原始主人正在正确复制,它正在循环所有 3 个。所以我建议在故障转移后检查原始主服务器的复制。如果您确定它正在工作,您还可以停止另一个从站,然后使用 SENTINEL FAILOVER mymaster
命令强制故障转移到原始主站。如果失败,您就知道复制一定有问题。
关于redis - redis sentinel故障转移后返回旧主人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195421/
我已经让 master 和 origin/master 陷入了观望状态,不再对该分支上的更改感兴趣。 我按照这些说明让我的本地主人指向正确的地方 Make the current git branch
我正在尝试推送我的项目(新存储库中的所有文件)。我按照这些步骤操作,但是当我使用 git push -u origin master 推送时,出现此错误: ! [rejected] ma
我正在尝试找出一种防止开发人员使用 Git 强制推送 master 的好方法。我们使用 GitHub 来托管我们的远程存储库,因此 pre-receive Hook 不是一个选项。开发团队可以轻松实现
我已经在 AWS ec2 实例上设置了一个 Jenkins。我有几台机器(Ubuntu、Mac)应该是奴隶。 我已经在我的 Jenkins 主节点上配置了节点,我正在尝试通过随机端口使用 JNLP-4
介绍和搜索 所以我认为我犯了一个严重的错误,我很担心。我已经分析了独立负责人的论坛,我已经接近找到答案,但场景太具体,不适用于我所在的位置。如果您找到可以回答我的问题的特定主题,请链接我。 例如:Ho
我是一名优秀的程序员,十分优秀!