MongoDB分片群集包含以下组件:
-
mongos:
mongos
充当查询路由器,提供客户端应用程序和分片集群之间的接口。 -
config servers:配置服务器存储群集的元数据和配置设置。从MongoDB 3.4开始,必须将配置服务器部署为副本集(CSRS)。
生产配置
在生产群集中,确保数据冗余并确保系统具有高可用性。对于生产分片群集部署,请考虑以下事项:
碎片数
分片需要至少两个分片来分配分片数据。如果您计划在不久的将来启用分片,但在部署时不需要,则单个分片分片群集可能很有用
数量mongos
和分布
部署多个mongos
路由器支持高可用性和可伸缩性。常见的模式是mongos
在每个应用程序服务器上放置一个。mongos
在每个应用服务器上部署一个 路由器可以减少应用程序和路由器之间的网络延迟。
或者,您可以将mongos
路由器放在专用主机上。大型部署受益于此方法,因为它将客户端应用程序服务器的数量与mongos
实例数量分离 。这样可以更好地控制mongod
实例所服务的连接数。
mongos
在自己的主机上安装实例允许这些实例使用更大量的内存。内存不会与mongod
实例共享。可以使用主分片来托管mongos
路由器,但要注意内存争用可能会成为大型部署的问题。
mongos
您可以在部署中使用的路由器数量没有限制。但是,由于mongos
路由器经常与配置服务器通信,因此在增加路由器数量时会密切监视配置服务器性能。如果您发现性能下降,那么限制mongos
部署中的路由器数量可能会有所帮助 。
开发配置
对于测试和开发,您可以部署具有最少组件数量的分片集群。这些非生产集群具有以下组件:
-
具有一个成员的副本集配置服务器。
-
至少有一个分片作为单成员副本集。
-
一个
m2.PNGmongos
例子。
构建一个分片集群参考以下文档
https://docs.mongodb.com/manual/tutorial/deploy-shard-cluster/
https://docs.mongodb.com/manual/tutorial/deploy-sharded-cluster-hashed-sharding/
rs.initiate(
{
_id: "sr0",
configsvr: true,
members: [
{ _id : 0, host : "127.0.0.1:27020" },
{ _id : 1, host : "127.0.0.1:27021" },
{ _id : 2, host : "127.0.0.1:27022" }
]
}
)
网友评论