Spring Boot连接到使用仲裁器运行的MongoDB副本集
我的应用程序是一个Spring引导应用程序,应用程序配置属性文件如下所示:
....
spring.data.mongodb.host=ip
spring.data.mongodb.port=27017
spring.data.mongodb.admin.database=admin
spring.data.mongodb.database=myDB
spring.data.mongodb.username=su
spring.data.mongodb.password=su1$
....
现在问题是为了实现高可用性,MongoDB已移至主要-次要-仲裁器设置。 我应该做哪些更改才能连接到这一点。已尝试使用逗号分隔,但无济于事。
解决方案
As Spring Bootdocumentation状态:
和spring.data.mongodb.port
不是 如果您使用的是Mongo 3.0 Java驱动程序,则支持。在这种情况下,spring.data.mongodb.uri
应用于提供所有 配置。 您可以设置spring.data.mongodb.uri
属性以更改URL和 配置其他设置,如副本集。
假设您有名为mc
且mongo1:27017
作为主要、mongo2:27017
作为次要和mongo3:27017
作为仲裁器的副本集,则可以使用:
spring.data.mongodb.uri=mongodb://su:su1$@mongo1:27017,mongo2:27017/myDB?replicaSet=mc
请注意that:
连接到副本集时,给出种子列表很重要
至少两个一神实例。如果您只提供连接
指向单个魔神实例,省略replicaSet
,客户端
将创建独立连接。
使用MongoDB连接字符串,您可以设置其他属性,如读取首选项。有关更多详细信息,请查看MongoDBdocumentation。
相关文章