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

时间:2016-09-06 06:54:23

标签: java spring mongodb 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已经转移到 Primary-Secondary-Arbiter 设置。 我应该做些什么改变才能连接到这个。尝试用逗号分隔,但这没有帮助。

1 个答案:

答案 0 :(得分:9)

正如Spring Boot documentation所述:

  

spring.data.mongodb.hostspring.data.mongodb.port不是   如果您使用Mongo 3.0 Java驱动程序,则支持。在这种情况下,   spring.data.mongodb.uri应该用来提供所有的   配置。

     

您可以设置spring.data.mongodb.uri属性来更改网址和   配置其他设置,例如副本集。

假设您的副本集名为mcmongo1:27017主要mongo2:27017次要mongo3:27017作为 Arbiter ,您可以使用:

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

请注意that

  

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

使用MongoDB连接字符串,您可以设置其他属性,例如 Read Preference 。有关详细信息,请查看MongoDB documentation