- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3 个 mongo 服务器配置为副本集,如下所示:
如果 27017
和 25017
发生故障,您如何访问唯一幸存者 26017
中的数据?我发现 mongo 不会自动将 26017
设置为 PRIMARY 服务器,因此整个副本变得无法访问。
我想要一个能够容忍这种情况的副本配置,并且当 27017
和 25017
再次运行时,副本集能够同步
谢谢,
最佳答案
这是正确的行为。大多数副本集必须启动并相互通信,然后进行选举,以便拥有主副本并接受任何写入操作。您无法配置副本集,以便当 1/3 成员启动时(从某些角度来看),该集可以接受写入。为什么?假设我们有一个 3 成员副本集,每个成员位于不同的数据中心,并且允许单独的副本集成员将自己设为主副本集
DC1: rs0/serverA
DC2: rs0/serverB
DC3: rs0/serverC
叛逆的侏儒切断了数据中心之间的所有电线;服务器 A、B 和 C 无法再相互通信。服务器 A 将这种情况视为“我还活着,但 B 和 C 都死了。我必须成为主服务器!”服务器 B 和 C 对自己说了同样的话。三个客户端 X、Y、Z 连接,一个连接到 A,一个连接到 B,一个连接到 C。它们发送以下涉及写入的操作:
X: db.mission_control.drop()
Y: db.mission_control.update({ }, { "fire_all_missiles" : true }, { "multi" : true })
Z: db.mission_control.update({ }, { "world_peace_mode" : "engage" }, { "multi" : true })
现在数据中心之间的线路已恢复,A、B、C 可以再次相互通信。我们应该如何处理 mission_control
集合?扔掉它,然后尝试发射导弹,然后尝试参与世界和平?发射导弹,然后扔掉它,然后尝试参与世界和平?也许,最卑鄙的是,我们应该致力于世界和平,然后,一旦每个人都放松警惕,发射导弹,然后通过丢弃收集来销毁证据。在这种情况下 MongoDB 应该如何知道该怎么做?
因此,如果没有多数票,就无法拥有主节点(接受写入的节点)。不过,当没有主数据库时,您仍然可以从辅助数据库中读取数据。你只需要设置一个 secondary read preference .
关于mongodb - 如果大多数服务器宕机,如何访问 mongo 副本集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29403311/
我已经为我的 PHP 代码设置了一个 Cron 作业,每 20 分钟运行一次。但它每次都会杀死 EC2 t2micro 实例。这是服务器日志。请帮忙。 ip-172-31-42-52 login: [
将 MassTransit 配置为容错以处理间歇性 RabbitMQ 连接问题或 RabbitMQ 完全崩溃的正确方法是什么?我已经在两台不同的机器之间设置了一个 RabbitMQ 集群并配置了 HA
我们的 Tomcat 6.0.29 在达到最大线程数后宕机。我真的很感激任何帮助,因为它是一个生产服务器。 这是 catalina.log 文件的一部分: INFO: Maximum number o
Redis 在我的应用程序中是可选的,这是即使 Redis 关闭,应用程序必须能够毫无问题地启动的要求之一。 我能够用 spring-data-redis 处理这个问题 1.8.1 版本,但升级到 时
Kafka宕机引发的高可用问题 问题要从一次Kafka的宕机开始说起。 笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的RabbitMQ,而是采用了设计之初就为日志处理
我们正在运行 Spark 2.4.0/Scala 2.11,并且运行一些监听 Kafka 主题的 Spark 流应用程序。 它是 Spark Kafka Direct 流 API,我们正在运行 4 个
如果我有一个 MongoDB 副本集,其中有 3 个节点(主要节点、次要节点、仲裁节点),并且主要节点出现故障,现在次要节点成为主要节点,您如何动态处理客户端中的更改,以便它们现在写入基本的? 我在开
我正在运行 Rails 3.1.0 应用程序,但遇到了一个奇怪的问题。在我们的登台服务器上,只有很少的事件,我们有 5 个 ruby 进程不断地使用以下命令 ping mySQL: poll([{
我是一名优秀的程序员,十分优秀!