0

我在 AWS 上使用 5 个 EC2 实例创建了一个 MongoDB 副本集。我使用 rs.add("[IP_Address]") 命令添加了节点。

我想在副本集中执行网络分区。为此,我指定了 2 种安全组。'SG1' 已打开 27017 端口(MongoDB 端口)。'SG2' 不会暴露 27017。

我想从副本集中隔离 2 个节点。当我在这 2 个节点(EC2 实例)上应用 SG2 时,理想情况下,它们应该停止从主节点读写,因为我正在使用安全组 SG2 阻止 27017 端口。但就我而言,它们仍然是可写的。写入主节点的数据反映在分区节点上。有人可以帮忙吗?泰亚。

4

1 回答 1

0

大多数防火墙(包括 AWS 安全组)都会在打开连接时阻止传入连接。更改设置将影响所有新连接,但现有打开的连接在应用时不会重新评估。

MongoDB 维护主机之间的连接,并且只有在主机之间的连接丢失后才会被阻塞。

在 Linux 上,您可以重新启动网络,这将重置连接。您可以在应用新规则后执行此操作,方法是运行:

/etc/init.d/networking stop && /etc/init.d/networking start

于 2018-11-18T07:47:46.233 回答