Fel*_* ZY 5 python mongodb pymongo
我正在尝试将相同的 docker 容器自动部署到多个服务器。部署由一个 python 脚本和一个 mongodb 数据库组成,它们应该在副本集中连接到其他 mongodb 实例。
我发现副本集的大部分设置都清晰且有据可查。但是,在学习本教程时,我遇到了以下问题:
仅在副本集的一个且仅一个mongod 实例
rs.initiate()上运行。
假设 python 脚本可以访问要部署容器的服务器的详尽列表(但可能尚未运行)(i)如何确保rs.initiate()在没有人工干预的情况下对整个副本集只运行一次?(ii)rs.initiate()多次运行的后果是什么?
副本集具有在所有节点之间共享的内部状态信息。例如,如果您rs.initiate在每个节点上同时运行,则每个节点将尝试启动自己的副本集,并且一个节点将拒绝加入其他节点的副本集,因为它们是不同的副本集。
您的配置逻辑需要选择一个节点来运行rs.initiate。
例如,您可以通过按字母顺序对主机名进行排序并使用第一个主机进行启动来做到这一点。
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |