replicaset vs multi-mongos vs multiple connections

Lea*_*lla 2 mongoose mongodb node.js

有什么区别以及为什么要使用猫鼬的这些功能?

现在我只需要一种方法将文档从一个数据库传输到另一个数据库.

Phi*_*ipp 12

副本集

副本集是两个或多个镜像相同数据的MongoDB服务器.读取可由该组的任何成员提供,但写入只能由单个服务器("主"或"主")处理.

应用程序只能连接到它知道的副本集成员,因此您需要告诉它所有这些成员的主机名和端口.在某些情况下,您希望将应用程序限制为特定成员.在这种情况下,您不会告诉他们其他服务器.

mongos

在多个服务器上扩展MongoDB的另一个功能是分片.分片集群由多个副本集或独立MongoDB服务器组成,其中每个服务器只有一部分数据.这提高了读写性能,但技术上更复杂.当应用程序想要连接到群集时,它不会直接连接到MongoDB进程.每个连接都通过MongoDB路由器而不是(mongos)将每个查询转发给mongod负责它的人.为了提高性能和冗余,群集可以拥有多个mongos服务器.在这种情况下,客户端应为每个连接随机选择一个.

多个连接

当您的应用程序打开与数据库的多个连接时,它可以并行执行多个请求.通常数据库驱动程序应该自动执行此操作,因此您不必担心这一点,除非您需要同时连接到多个数据库,或者由于某种原因需要连接不同的连接设置.