Spring with mongo-java-driver 使用 Azure Cosmos DB 作为 MongoDB

Posted

技术标签:

【中文标题】Spring with mongo-java-driver 使用 Azure Cosmos DB 作为 MongoDB【英文标题】:Spring with mongo-java-driver Use Azure Cosmos DB as MongoDB 【发布时间】:2018-02-21 18:04:34 【问题描述】:

我正在尝试在我的 Spring boot 应用中使用 Azure Cosmos DB 而不是 MongoDB

目前,我正在使用 mongo.host/database/port 属性。我找不到可以设置 SSL 选项和 replicaSet 或完整客户端 URI 的位置。

这是他们建议的代码,它正在工作,但它对我没有帮助......

MongoClient mongoClient = new MongoClient(
    new MongoClientURI("mongodb://[user]:[pass]@[host]:[port]/?ssl=true&replicaSet=globaldb"));

【问题讨论】:

“我正在尝试使用 Azure Cosmos DB 而不是 MongoDB”——这不是一个明智的想法。尽管声称“兼容性”,但苹果根本不是橙子。如果您想使用 XYZ 数据库引擎,那么我强烈建议您实际使用 XYZ 数据库引擎的原生 API。有些事情会奏效,有些则不会。大多数报告都严重依赖于“不”,它并没有逃脱注意,曾经发布的“兼容性矩阵”详细信息现在即使不是不可能也很难找到。兼容层并不是什么新鲜事物。从历史上看,他们从来没有辜负人们的要求。 【参考方案1】:

您可以尝试只使用“spring.data.mongodb.uri”属性而不是单独指定主机/数据库/端口吗?

官方文档 (https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-connecting-to-mongodb) 在连接副本集时也推荐这种方法。

How to configure spring-data-mongodb to use a replica set via properties也讨论了这个问题

【讨论】:

谢谢,我已经尝试了 URI,现在它可以工作了。问题是我错误地用我的测试源覆盖了 AbstractMongoConfiguration bean,这就是参数不起作用的原因。

以上是关于Spring with mongo-java-driver 使用 Azure Cosmos DB 作为 MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

RSS Feeds with Spring Boot

Spring AOP AspectJ Pointcut Expressions With Examples

Spring Boot with Spring Data JPA - Concept

Spring Batch with Spring boot - 配置 JobRepositoryFactoryBean

Spring For Hadoop--Working With HBase

Application Metrics With Spring Boot Actuator