1、mongos
mongos是用户和集群间的交互点,其职责是隐藏分片内部的复杂性并向用户提供一个简洁的单服务器接口,这个抽象层中也存在一些缝隙,不过大多数情况下mongos允许你把一个集群当做一台服务器。
使用集群时,应该连接一个mongos并向它发送所有的读写操作,无论如何,你都不应该直接访问分片(但如果想的话能做到)。
mongos会将所有用户请求转发到恰当的分片上,如果用户插入一份文档,mongos会查看文档的片键,对照数据块,并把文档发送到持有相应块的分片上。
举个例子,比如说我们要插入{"foo":"bar"}且已经以foo作为片键做了分片,mongos会查看所有可用的块,然后发现一个区间为{"a":"c"}的块应当包含bar,这个块在分片2上,因此mongos会把插入消息发送给分片2。
</