假设我有5个 node 的副本集.

其中3人死亡,2人活着.

多数将如何计算?5个 node 的多数将是5/2+1=3,但如果3个 node 失效,它还会寻找3票吗?只有2个人活着,所以只有2票…或者大多数将是2/2+1=2,这仍然令人困惑,因为在选举中会发生什么,读/写问题是否会对这些…中的任何一个产生任何影响

基本上,n/2+1到From多数中的数字n表示整个副本集成员的长度(可以投票死亡或活着的成员的长度),还是只有活 node 的长度?

我try 手动删除5 node 副本集中的3个 node (4加仲裁器,也取消了仲裁器),左侧的2个 node 都成为辅助 node ,我无法访问数据库.

我在3个 node 的副本集中(没有仲裁器)try 了同样的方法,并终止了1个 node ,因此这与第一个测试相同,其中只有2个数据 node 是活动的,并且它确实选举了一个主 node ,并且数据库工作正常.

我在试着了解他们两者之间的不同之处.

推荐答案

假设您不更改 node 配置中的优先级、隐藏或投票(例如,您使用默认的副本集设置),并且您没有仲裁器,则会发生以下情况:

1) How many members replicaSet allow to be down at same time?

3个成员复制集仅允许同时关闭3个成员中的1个,并且复制集仍可写(例如,将 Select 主成员)

5个成员复制集仅允许同时关闭5个成员中的2个,并且复制集仍可写(例如,将 Select 主成员)

7个成员复制集仅允许同时关闭7个成员中的3个,并且复制集仍可写(例如,将 Select 主成员)

2) What happen if more members are down than allowed?

如果在3x Members ReplicaSet中有2x个成员关闭,选举将被触发,仍然活着的成员将不会获得多数成员的投票,因此如果它是主要的将切换到次要,如果它是次要的它将保持次要.ReplicaSet将仍然可读,但不能写入,当大多数成员可用时,任何其他复制副本集也会发生同样的情况.

Database相关问答推荐

如何更改 Heroku 中的列类型?

SQL Select 用字符串替换整数

在 MongoDB 中模拟关系

如何在运行时备份嵌入式 H2 数据库引擎?

用于 sql server 的免费国家、城市数据库

Spring 的 JdbcTemplate 是否在查询超时后关闭连接?

如何在 2 个 MySQL 数据库之间传输数据?

在 SQL Server 中存储属性的最佳模式是什么?

本地数据库,我需要一些例子

主键、唯一键和外键约束以及索引之间有什么区别?

自动增量唯一标识符

如何处理这个错误(1049,未知数据库'/users/ohyunjun/work/astral/mysql')

SQL Server 自动备份

QSqlDatabase & QSqlQuery 的正确方法是什么?

最佳用户角色权限数据库设计实践?

将查询限制为一条记录会提高性能吗

归一化 - 2NF 与 3NF

有任何使用协议缓冲区的经验吗?

如何将 mongodb 数据库转移到另一台看不到第一个的机器上

MySQL 查询,MAX() + GROUP BY