Spring引导连接到使用Arbiter运行的MongoDB副本集

vai*_*hav 2 java replication spring mongodb spring-boot

我的应用程序是一个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$
....
Run Code Online (Sandbox Code Playgroud)

现在,为了实现高可用性,MongoDB已经转移到了Primary-Secondary-Arbiter设置.我应该做些什么改变才能连接到这个.尝试用逗号分隔,但没有帮助.

Ali*_*ani 10

正如Spring Boot 文档所述:

spring.data.mongodb.hostspring.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
Run Code Online (Sandbox Code Playgroud)

请注意的是:

连接到副本集时,必须提供至少两个mongod实例的种子列表.如果您只提供单个mongod实例的连接点,并省略replicaSet,则客户端将创建独立连接.

使用MongoDB连接字符串可以设置其他属性,例如" 读取首选项".请查看MongoDB 文档以获取更多详细信息.