ApiBoot v2.2.7版本發(fā)布,新增擴(kuò)展SpringBoot Mongo詳細(xì)配置組件

知識改變命運(yùn),擼碼使我快樂,2020繼續(xù)游走在開源界

點(diǎn)贊再看,養(yǎng)成習(xí)慣

給我來個(gè)Star吧,點(diǎn)擊了解下基于SpringBoot的組件化接口服務(wù)落地解決方案

ApiBoot 是什么?

ApiBoot 是接口服務(wù)的落地解決方案,提供了一系列開箱即用的組件,通過封裝來簡化主流第三方框架的集成,從而提高開發(fā)者開發(fā)效率、學(xué)習(xí)成本、降低入門門檻,真正的實(shí)現(xiàn)開箱即用?。。?/p>

image

更多開源信息請?jiān)L問:https://blog.yuqiyu.com/opensource/

ApiBoot所屬minbox-projects開源組織:

image

SpringBoot簡單了解的開發(fā)者就可以編寫安全穩(wěn)定的接口服務(wù),可為移動(dòng)端、網(wǎng)頁端等多個(gè)端點(diǎn)提供豐富的安全接口。

ApiBoot依賴于SpringBoot,完全遵循SpringBoot自定義Starter的規(guī)范實(shí)現(xiàn),可以使用ApiBoot構(gòu)建獨(dú)立的Java應(yīng)用程序,主要的職責(zé)是封裝并且落地項(xiàng)目中常用到的第三方依賴,未來會(huì)接入越來越多優(yōu)秀的開源項(xiàng)目,提供統(tǒng)一的SpringBoot集成解決方案。

愿景:

  • 為Java開發(fā)者提供低門檻第三方框架集成解決方案,讓復(fù)雜的框架集成使用的門檻更低。
  • 開箱即用,內(nèi)部封裝了主流框架,只需添加依賴、簡單配置即可使用。
  • 各個(gè)組件可獨(dú)立使用,不再冗余你的應(yīng)用程序。
  • 可簡單快速的構(gòu)建安全的restful資源接口服務(wù)。
  • 可用于構(gòu)建SpringCloud微服務(wù)服務(wù)實(shí)例。

如果您想要系統(tǒng)的學(xué)習(xí) ApiBoot 可以訪問我的博客:https://blog.yuqiyu.com/apiboot-all-articles.html或者官方文檔:https://apiboot.minbox.org

v2.2.7 更新日志 ?

  • 新增mongo-client-settings組件(擴(kuò)展SpringBoot Mongo配置)

  • 修復(fù)Swagger組件使用spring-boot-starter-validation(SpringBoot v2.3.x+)#issues 20

  • 更新部分源碼注釋內(nèi)容

ApiBoot Mongo Settings

我們通過SpringBoot整合mongoDB時(shí),一般會(huì)直接使用spring-boot-starter-data-mongo這個(gè)依賴,而SpringBoot內(nèi)部所提供的配置參數(shù)較少,詳情請?jiān)L問SpringBoot官方文檔。

我們比較常見的一個(gè)問題:Mongo連接超時(shí)。

mongo并不是沒有提供對應(yīng)的參數(shù)配置方式,只是SpringBoot并未做出聲明式的定義。

1. 添加依賴組件

pom.xml配置文件內(nèi)添加如下:

<dependency>
  <groupId>org.minbox.framework</groupId>
  <artifactId>api-boot-starter-mongo-client-settings</artifactId>
</dependency>

注意事項(xiàng):如果未添加ApiBoot版本依賴,請?jiān)L問版本依賴查看添加方式,api-boot-starter-mongo-client-settings并不能代替spring-boot-starter-data-mongo依賴,只是針對它的配置參數(shù)擴(kuò)展。

2. 提供的擴(kuò)展參數(shù)

參數(shù)名 默認(rèn)值 描述
api.boot.mongo.settings.socket.connect-timeout-milli-seconds 10000 設(shè)置Socket連接超時(shí)時(shí)間,單位:毫秒
api.boot.mongo.settings.socket.read-timeout-milli-seconds 10000 設(shè)置Socket讀取超時(shí)時(shí)間,單位:毫秒
api.boot.mongo.settings.socket.receive-buffer-size 設(shè)置接收緩沖區(qū)的大小
api.boot.mongo.settings.socket.send-buffer-size 設(shè)置發(fā)送緩沖區(qū)的大小
api.boot.mongo.settings.heartbeat-socket.connect-timeout-milli-seconds 10000 設(shè)置心跳Socket連接超時(shí)時(shí)間,單位:毫秒
api.boot.mongo.settings.heartbeat-socket.read-timeout-milli-seconds 10000 設(shè)置心跳Socket讀取超時(shí)時(shí)間,單位:毫秒
api.boot.mongo.settings.heartbeat-socket.receive-buffer-size 設(shè)置心跳Socket接收緩沖區(qū)的大小
api.boot.mongo.settings.heartbeat-socket.send-buffer-size 設(shè)置心跳Socket發(fā)送緩沖區(qū)的大小
api.boot.mongo.settings.server.min-heartbeat-frequency-milli-seconds 500 設(shè)置與Server端保持最小心跳頻率時(shí)間,單位:毫秒
api.boot.mongo.settings.server.heartbeat-frequency-milli-seconds 10000 設(shè)置群集監(jiān)視器嘗試訪問每個(gè)服務(wù)器的時(shí)間頻率,單位:毫秒
api.boot.mongo.settings.connection-pool.min-size 100 允許的最大連接數(shù)
api.boot.mongo.settings.connection-pool.max.size 最小連接數(shù)
api.boot.mongo.settings.connection-pool.max-wait-time-milli-seconds 120000 線程等待連接可用的最長時(shí)間,單位:毫秒
api.boot.mongo.settings.connection-pool.max-connection-life-time-milli-seconds 池化連接可以生存的最長時(shí)間,單位:毫秒
api.boot.mongo.settings.connection-pool.max-connection-idle-time-milli-seconds 池化連接的最大空閑時(shí)間,單位:毫秒
api.boot.mongo.settings.connection-pool.maintenance-frequency-milli-seconds 維護(hù)作業(yè)運(yùn)行之間的時(shí)間段,單位:毫秒
api.boot.mongo.settings.connection-pool.maintenance-initial-delay-milli-seconds 在連接池上運(yùn)行第一個(gè)維護(hù)作業(yè)之前要等待的時(shí)間,單位:毫秒
api.boot.mongo.settings.cluster.local-threshold-milli-seconds 15 設(shè)置本地閾值,單位:毫秒
api.boot.mongo.settings.cluster.server-selection-timeout-milli-seconds 30000 設(shè)置選擇服務(wù)器時(shí)要應(yīng)用的超時(shí)時(shí)間,單位:毫秒
api.boot.mongo.settings.cluster.mode 設(shè)置此集群的模式
api.boot.mongo.settings.cluster.required-cluster-type UNKNOWN 設(shè)置集群所需的集群類型
api.boot.mongo.settings.cluster.required-replica-set-name 設(shè)置集群所需的副本集名稱
api.boot.mongo.settings.ssl.enabled false 定義是否應(yīng)啟用SSL。
api.boot.mongo.settings.invalid-host-name-allowed false 定義是否應(yīng)允許無效的主機(jī)名。

針對連接超時(shí)的問題,我們就可以通過api.boot.mongo.settings.socket相關(guān)配置參數(shù)來解決,參考如下所示:

# ApiBoot相關(guān)配置
api:
  boot:
    mongo:
      settings:
        socket:
          # 讀取Server的超時(shí)時(shí)間,單位:毫秒
          read-timeout-milli-seconds: 60000
          # 連接Server的超時(shí)時(shí)間,單位:毫秒
          connect-timeout-milli-seconds: 60000

作者個(gè)人 博客
使用開源框架 ApiBoot 助你成為Api接口服務(wù)架構(gòu)師

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容