Java Spring引导连接到使用仲裁器运行的MongoDB副本集
我的应用程序是一个Spring引导应用程序,应用程序配置属性文件如下所示:Java Spring引导连接到使用仲裁器运行的MongoDB副本集,java,spring,mongodb,spring-boot,replication,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$ .... 现
....
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已经转移到一个主-辅仲裁器设置。
我应该做哪些更改才能连接到此。尝试用逗号分隔,但没有帮助。由于Spring启动状态:
spring.data.mongodb.host
和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
请注意:
连接到副本集时,提供种子列表非常重要
至少有两个mongod实例。如果你只提供连接
指向单个mongod实例,并省略客户机的replicaSet
将创建独立连接
使用MongoDB连接字符串,您可以设置其他属性,例如读取首选项。有关更多详细信息,请查看MongoDB。哪个版本的MongoDB?2或3?MongoDB shell版本:3.2.5我们可以不使用问题中提到的属性并仍然实现它吗?您不需要这些配置。是的,如果您使用的是Mongo3.0Java驱动程序,则不支持spring.data.mongodb.host
和spring.data.mongodb.port
。在这种情况下,应该使用spring.data.mongodb.uri
来提供所有配置。我使用的是:org.mongodb mongo java driver 3.2.2和spring.data.mongodb.host和spring.data.mongodb.port正在独立设置中工作