我的应用程序是一个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 设置。 我应该做些什么改变才能连接到这个。尝试用逗号分隔,但这没有帮助。
答案 0 :(得分:9)
正如Spring Boot documentation所述:
spring.data.mongodb.host
和spring.data.mongodb.port
不是 如果您使用Mongo 3.0 Java驱动程序,则支持。在这种情况下,spring.data.mongodb.uri
应该用来提供所有的 配置。您可以设置
spring.data.mongodb.uri
属性来更改网址和 配置其他设置,例如副本集。
假设您的副本集名为mc
,mongo1: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。