繁体   English   中英

MongoDB ConnectionString中的ReplicaSet信息

[英]ReplicaSet Info in MongoDB ConnectionString

这个问题是关于在连接字符串中指定replicaSet的。

我在spring数据中定义了以下连接字符串:

mongodb://userName:password@DBSeedServer:port/NameOfDB

此连接字符串定义1个种子服务器,并且没有副本集信息。

根据MongoDB文档 ,如果仅提供单个mongod实例的连接点,并且省略了copySet,则客户端将创建一个独立的连接。

由于连接字符串中还提供了DB,因此如果引导期间可用,则仍然可以从单个种子获取副本集信息。 我找不到有关无法从单个种子获取副本集信息的驱动程序文档。

是否有任何原因导致哪一个驱动程序无法从种子建立副本集信息,即使该种子信息是辅助副本还是现有副本集的一部分?

另外,使用单个种子还会看到哪些其他问题(我可以认为一个种子是单点故障,这意味着如果唯一提供的种子不可用,则无法确定主要种子,则无法建立连接)

由于连接字符串中还提供了DB,因此如果引导期间可用,则仍然可以从单个种子获取副本集信息。 我找不到有关无法从单个种子获取副本集信息的驱动程序文档。

是否有任何原因导致哪一个驱动程序无法从种子建立副本集信息,即使该种子信息是辅助副本还是现有副本集的一部分?

根据MongoDB 服务器发现和监视(SDAM)规范,驱动程序有意将独立连接与副本集连接区分开。 在独立模式下连接时,驱动程序将不会尝试对副本集配置进行任何拓扑发现或验证。

如果要与副本集的特定成员建立连接(例如,为了进行备份或执行维护),这将很有用。 绕过副本集发现还可以使您使用主机名/端口别名连接到副本集成员(例如,如果要通过代理/防火墙转发连接)。 使用副本集连接时,客户端应使用副本集配置中列出的主机名和端口 (而不是种子列表),因此客户端视图始终遵循副本集故障转移和重新配置。

另外,使用单个种子还会看到哪些其他问题(我可以认为一个种子是单点故障,这意味着如果唯一提供的种子不可用,则无法确定主要种子,则无法建立连接)

由于存在用于数据冗余和故障转移的副本集,因此仅提供单个种子成员会破坏此部署类型的基本目标之一。 强烈建议您在种子列表中提供两个或更多成员,以帮助确保您的应用程序可以成功连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM