更新配置mongodb分片数据库访问点mongos在运行时的复制

erhoui1w  于 2023-04-05  发布在  Go
关注(0)|答案(1)|浏览(125)

我正在构建一个分片的MongoDB集群,我想自动管理它。为了实现这一点,我构建了一个分片数据库的正常设置:

  • 配置数据库的3个副本
  • 分片“a”的3个副本(最初只有一个,但随着节点大小的增加,分片的数量增加)
  • mongodb访问点“mongos”的3个副本

为了连接config db和mongos示例,我使用了以下命令:

mongos --configdb "cfg/<ip_of_config_server_1>:<port_of_config_instance>,cfg/<ip_of_config_server_2>:<port_of_config_instance>,cfg/<ip_of_config_server_3>:<port_of_config_instance>" --fork --logpath <some_path> --port <some_port>

现在我的问题是,如果一个配置服务器从集群中删除(或关闭),另一个被添加,我需要更新mongos示例。
我只是不知道如何在不关闭mongos示例并重新运行此命令的情况下做到这一点,从而导致停机。
你们中有谁知道解决这种情况的方法或最佳实践吗?

brccelvz

brccelvz1#

当您的客户端连接到mongos时,您还可以在连接字符串中放置多个mongos主机(在您的情况下为3个),用逗号分隔。客户端在相应的mongos示例上运行每个命令。因此,您可以逐个重新启动mongos,而不会中断服务。
当你有

--configdb "cfg/<ip_of_config_server_1>:27019,cfg/<ip_of_config_server_2>:27019,cfg/<ip_of_config_server_3>:27019"

如果一台主机关闭(假设为ip_of_config_server_1),则只要config_server_2config_server_3启动,群集就保持完全工作。
通常,当服务器出现故障时,您不会将其删除。您可以修复问题并重新启动它。或者当它发生物理故障时,替换的硬件将获得相同的主机名/IP,即--configdb不会更改。
只是一个提示,我建议使用configuration file而不是命令行选项。在我看来,配置文件更容易处理和维护。

相关问题