【发布时间】:2020-07-09 20:00:31
【问题描述】:
在我的 Spring Boot 项目中,我已成功配置 Mongo DB 副本集。 现在,如果我向已定义的副本集添加新成员,我是否需要更改 spring boot mongo uri 属性。 如果我添加副本集成员但不需要更改我的 Spring Boot 配置,是否还有其他机制。
【问题讨论】:
标签: spring-boot mongodb-replica-set
在我的 Spring Boot 项目中,我已成功配置 Mongo DB 副本集。 现在,如果我向已定义的副本集添加新成员,我是否需要更改 spring boot mongo uri 属性。 如果我添加副本集成员但不需要更改我的 Spring Boot 配置,是否还有其他机制。
【问题讨论】:
标签: spring-boot mongodb-replica-set
如果您在单个主机上使用 DNS 种子列表 (mongodb+srv...),您的 Mongo 驱动程序将查找所有主机。所以mongodb+srv://<user>:<pass>@mydomain.mongodb.net"可以解析为mydomain-shard-00, mydomain-shard-01..。否则你必须指定spring.data.mongodb.uri中的所有成员
【讨论】:
当 mongodb 驱动连接到副本集时,它会计算出副本的所有节点。即使您添加新节点,它也会发现它。但是假设您在 spring 配置中只配置了一个节点,然后启动了您的应用程序。一旦一切正常,配置中配置的节点就会关闭。但是您的应用程序仍然可以继续工作,因为它已经找到了其他节点。但是,如果您重新启动应用程序,它将无法连接,因为您只配置了一个节点并且该节点不可用。因此,好的做法是始终指定配置中的所有或大部分节点。
【讨论】: