我想学习MongoDB查询到MongoDB Sharded Cluster的整个路径,然后返回结果.它是从mongos传递到配置服务器然后到其中一个分片,然后它返回到配置并返回到客户端驱动程序或其他?
谢谢!
查询从您的应用程序发送到本地或远程mongos
实例,与其名称(Mongo Shard)相反,实际上是路由器.
如果您的查询包含分片键,则mongos
路由器将使用来自配置服务器的缓存数据来确定要查询的分片.
如果您的查询不包含分片键,那么MongoDB将执行分散和收集操作,基本上将所有分片的结果都询问某个查询.
在这两种情况下,mongos
都会将查询并行化为多个分片,然后返回最终结果.
每次getMore()
在光标上运行以获得另一批结果时,它必须重做查询,即使它是分散和收集操作.