
知識改變命運(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>

更多開源信息請?jiān)L問:https://blog.yuqiyu.com/opensource/
ApiBoot所屬minbox-projects開源組織:

對 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