mongodb - 即使在使用安全组完成网络分区后,MongoDB 节点(AWS EC2 实例)仍然响应
问题描述
我在 AWS 上使用 5 个 EC2 实例创建了一个 MongoDB 副本集。我使用 rs.add("[IP_Address]") 命令添加了节点。
我想在副本集中执行网络分区。为此,我指定了 2 种安全组。'SG1' 已打开 27017 端口(MongoDB 端口)。'SG2' 不会暴露 27017。
我想从副本集中隔离 2 个节点。当我在这 2 个节点(EC2 实例)上应用 SG2 时,理想情况下,它们应该停止从主节点读写,因为我正在使用安全组 SG2 阻止 27017 端口。但就我而言,它们仍然是可写的。写入主节点的数据反映在分区节点上。有人可以帮忙吗?泰亚。
解决方案
大多数防火墙(包括 AWS 安全组)都会在打开连接时阻止传入连接。更改设置将影响所有新连接,但现有打开的连接在应用时不会重新评估。
MongoDB 维护主机之间的连接,并且只有在主机之间的连接丢失后才会被阻塞。
在 Linux 上,您可以重新启动网络,这将重置连接。您可以在应用新规则后执行此操作,方法是运行:
/etc/init.d/networking stop && /etc/init.d/networking start
推荐阅读
- java - 在 Java 中将 Map 转换为 JSON
- oauth-2.0 - 使用 IMAP 和 OAuth2 关于凭据的开源应用程序的最佳实践?
- javascript - 数据表中应该显示多少行?没有出现在顶部
- apache-spark - Spark Structured Streaming 无法查看记录详细信息
- java - com.itextpdf.text.html.simpleparser.HTMLWorker ----- Java 中的 HTMLWorker.Parse 错误
- html - 在 html 或 css 中我的代码有问题
- c - 我可以使用 getchar() 来清除 scanf 和 fgets 之间的缓冲区吗?
- pygame - 为什么 play_button.rect.collidepoint(mouse_x , mouse_y) 不起作用?
- ios - SwiftUI 在特定选项卡索引/标签上加载 TabView 会导致第一个选项卡也加载
- python - 在烧瓶中使用电报上传上传文件?