我在Spring Boot中开发了一个微服务,并将其部署在Cloud Foundry中。 MongoDB是在PCF中创建的服务,它是副本集类型服务。 mongodb服务绑定到PCF中的微服务。当使用以下代码在云中部署时,我正在使用Spring云连接器自动获取mongodb服务的连接字符串。
@Configuration
@Profile("cloud")
public class CloudFoundryDatabaseConfig extends AbstractCloudConfig{
@Bean
public Cloud cloud() {
return new CloudFactory().getCloud();
}
@Bean
public MongoDbFactory mongoFactory() {
return connectionFactory().mongoDbFactory();
}
}
当mongoDB服务是独立类型时,此代码可以正常工作。但是,如果它是副本集,我会收到未知的主机异常。由于mongodb URI包含逗号分隔的主机名,因此似乎无法解析。
下面的MongoDB URI示例。 “ mongodb://用户名:密码@ 101.23.65.41:28000,101.23.65.43:28000,101.23.65.45:28000 / default?authSource = admin”
错误: com.mongodb.MongoSocketException:mongod-node-0-310d0fd1.mongodb.internal:名称或服务未知},由{java.net.UnknownHostException
引起Pom.xml:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
</dependency>
请帮助。