文章目錄
- 配置Maven依賴
- URL格式
- 單節點配置示例
- 副本集(含連接池配置)
配置Maven依賴
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>
URL格式
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]mongodb:// 前綴,代表這是一個Connection String
username:password@ 如果啟用了鑒權,需要指定用戶密碼
hostX:portX 復制集成員的ip:port信息,多個成員以逗號分割
/database 鑒權時,用戶帳號所屬的數據庫
?options 指定額外的連接選項
注意:
連接串中的賬號密碼包含特殊字符!@#$%^&*()_+= 您需要在連接串中對特殊字符進行轉義處理,轉義規則如下:
! : %21
@ : %40
# : %23
$ : %24
% : %25
^ : %5e
& : %26
* : %2a
( : %28
) : %29
_ : %5f
+ : %2b
= : %3d
單節點配置示例
在 Spring Boot 中,你可以使用 YAML 格式的配置文件來配置 MongoDB 連接。下面是一個示例 YAML 配置文件,展示了如何配置 Spring Boot Starter Data MongoDB:
spring:data:mongodb:host: localhost # MongoDB 主機地址port: 27017 # MongoDB 端口號database: myDatabase # 要連接的數據庫名稱username: myUsername # MongoDB 用戶名password: myPassword # MongoDB 密碼authentication-database: admin # 認證數據庫auto-index-creation: true # 是否自動創建索引field-naming-strategy: org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategy # 字段命名策略
副本集(含連接池配置)
在這個示例中,spring.data.mongodb
下的屬性配置了 MongoDB 的連接信息和一些其他選項。你可以根據實際的情況進行調整和配置。
除了上述示例中展示的屬性外,你還可以配置其他詳細的連接池信息,例如連接池大小、連接超時等。以下是一些常見的連接池配置屬性:
spring:data:mongodb:database: ariecmsauthentication-database: adminauto-index-creation: truefield-naming-strategy: org.springframework.data.mapping.model.CamelCaseAbbreviatingFieldNamingStrategyuri: "mongodb://root:xxx@xxx1.com:3717,xxx2.com:3717/admin?replicaSet=mgset-xxx&readPreference=secondaryPreferred"connection-pool:minSize: 20maxSize: 600maxWaitTime: 10000maxConnectionIdleTime: 180000maxConnectionLifeTime: 600000maxConnecting: 600
通過正確的Connection String來連接MongoDB復制集時,客戶端會自動檢測復制集的主備關系,當主備關系發生變化時,自動將寫切換到新的主上,以保證服務的高可用。
如何實現讀寫分離?
在options里添加readPreference=secondaryPreferred即可實現,讀請求優先到Secondary節點,從而實現讀寫分離的功能,更多讀選項參考Read preferences
如何限制連接數?
在options里添加maxPoolSize=xx即可將客戶端連接池限制在xx以內。
如何保證數據寫入到大多數節點后才返回?
在options里添加w= majority即可保證寫請求成功寫入大多數節點才向客戶端確認,