Spring Boot连接到使用仲裁器运行的MongoDB副本集

2022-07-16 00:00:00 mongodb spring java spring-boot replication

我的应用程序是一个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和 配置其他设置,如副本集。

假设您有名为mcmongo1:27017作为主要、mongo2:27017作为次要和mongo3:27017作为仲裁器的副本集,则可以使用:

spring.data.mongodb.uri=mongodb://su:su1$@mongo1:27017,mongo2:27017/myDB?replicaSet=mc

请注意that:

连接到副本集时,给出种子列表很重要 至少两个一神实例。如果您只提供连接 指向单个魔神实例,省略replicaSet,客户端 将创建独立连接。

使用MongoDB连接字符串,您可以设置其他属性,如读取首选项。有关更多详细信息,请查看MongoDBdocumentation。

相关文章