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