四个组件:mongos、config server、shard、replica set。mongodb
mongos,数据库集群请求的入口,全部的请求都经过mongos进行协调,不须要在应用程序添加 一个路由选择器,mongos负责把对应的数据请求转发到对应的shard服务器上。在生产环境一般有多mongos做为请求的入口,防止其中一个挂掉全部的mongodb请求都没有办法操做。数据库
config server,配置服务器,存储全部数据库元信息(路由、分片)的配置。 mongos自己没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储这些数据。mongos第一次启动或者关掉重启就会从config server 加载配置信息,若是配置服务器信息变化会通知到全部的 mongos更新本身的状态,这样 mongos就能继续准确路由。在生产环境一般有多个config server配置服务器,由于它存储了分片路由的元数据。
缓存
shard,存储实际数据的分片。mongodb官网建议每一个shard最好是一组Replica Set,这样能够更好实现每一个Shard内部的auto-failover。
服务器