SpringBoot集成MongoDB
一、相关依赖
1 | <dependencies> |
二、配置文件
2.1 单节点
1 | spring: |
1 | spring.data.mongodb.host=localhost |
2.2 分片集
如果使用的是 MongoDB 的 Sharded Cluster(分片集群)模式,你需要配置多个 Mongos 路由节点的地址。
1 | spring: |
1 | spring.data.mongodb.uri=mongodb://username:password@mongos1:27017,mongos2:27017/your_database_name |
mongos1, mongos2: MongoDB 分片集群中的路由节点(Mongos)的地址。
2.3 副本集
如果你使用的是 MongoDB 的 Replica Set(副本集)模式,需要在配置文件中指定所有副本节点的地址。
1 | spring: |
1 | spring.data.mongodb.uri=mongodb://username:password@host1:27017,host2:27017,host3:27017/your_database_name?replicaSet=your_replica_set_name |
username和password: 你的 MongoDB 认证用户名和密码。host1,host2,host3: MongoDB 副本集中各个节点的地址。your_database_name: 要使用的数据库名称。replicaSet: 你配置的副本集的名称。
2.4 分片副本集
要连接一个 2 分片 3 副本的 MongoDB 集群,你需要连接到多个 Mongos 实例(分片集群的路由节点),并确保配置了副本集的参数。以下是具体的配置步骤:
2.4.1 了解架构
- 2 分片(Shards): 数据被分布到两个不同的分片上,每个分片可能有多个副本。
- 3 副本(Replica Sets): 每个分片都有三个副本,用于提高数据的可用性和可靠性。
- Mongos 实例: 分片集群中的路由节点,客户端通过连接到这些节点进行数据操作。
2.4.2 配置连接 URI
你需要在 spring.data.mongodb.uri 中指定所有 Mongos 节点的地址,并添加副本集的配置。通常,你只需要连接到一组 Mongos 节点,因为它们会自动处理分片和副本集的细节。
application.yml 示例:
1 | spring: |
1 | spring.data.mongodb.uri=mongodb://username:password@mongos1:27017,mongos2:27017/your_database_name?ssl=true |
username和password: 你的 MongoDB 认证用户名和密码。mongos1,mongos2: 你的两个 Mongos 节点的地址。your_database_name: 你要使用的数据库名称。ssl=true: 启用 SSL/TLS 加密连接(如果你的集群启用了 SSL)。
2.4.3 处理连接参数
可以添加更多连接参数来优化连接,特别是在使用分片和副本集时。以下是一些常见的连接参数:
readPreference=nearest: 选择读取数据时的优先级策略,nearest会选择最近的节点读取数据。w=majority: 写入数据时的确认级别,majority确保数据写入到大多数节点。maxPoolSize=100: 设置连接池的最大大小。
2.5 自定义 MongoClient 配置(可选)
在有些情况下,你可能希望自定义 MongoClient 的配置,例如调整连接池大小、超时设置等。你可以通过以下方式自定义 MongoClient。
1 | import com.mongodb.MongoClientSettings; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 崔安兵的博客!
评论

