我有一个 MongoDB 设置,例如 2 个分片和每个分片 2 台机器,总共 4 台物理机。我还有一个程序可以查询一些文档,对每个文档进行一些处理,然后在数据库中写回每个文档的新版本来替换旧版本(但保持分片键相同)。
现在,我想让同一个程序以分布式方式运行,所以一个简单的想法是在 4 台物理机器中的每台机器上运行程序的单独实例。
棘手的部分是我希望程序的每个实例只检索和处理位于同一物理机器上的数据(以最大限度地减少数据在网络上的移动)。
我正在考虑而不是更改程序(为了通过查询“config”db等来检查哪些文档存在于本地机器中),而只是让程序的每个实例连接到本地mongod进程。这样,通过运行完全相同的查询,它应该只检索和处理本地结果。
这种方法行得通吗?我错过了什么吗?