SpringBoot actuator 健康檢查不通過(guò)的解決方案
今天遇到有個(gè)服務(wù)能夠注冊(cè)成功,但是健康檢查不通過(guò),通過(guò)瀏覽器訪問(wèn)健康檢查的url,chrome的network一直顯示pending,說(shuō)明這個(gè)請(qǐng)求提交了,但是得不到返回,卡住了。
原來(lái)以為健康檢查就是檢查服務(wù)端口下的/health這個(gè)請(qǐng)求本身是否能正常返回,其實(shí)不是。
所謂健康檢查是有很多檢查項(xiàng)的,springboot中繼承AbstractHealthIndicator的類(lèi),比如DataSourceHealthIndicator RedisHealthIndicator 等,springboot會(huì)自動(dòng)配置,比如使用了mysql的datasouce,健康檢查的時(shí)候就會(huì)執(zhí)行DataSourceHealthIndicator 的doHealthCheck(),使用了redis,就會(huì)執(zhí)行RedisHealthIndicator 的doHealthCheck()。
解決方式:首先可以確定是否是這些外部數(shù)據(jù)源連接不了導(dǎo)致健康檢查不通過(guò),可以配置
management: health: db: enabled: false redis: enabled: false elasticsearch: enabled: false
把系統(tǒng)中用到的都關(guān)閉健康檢查,看健康檢查是否能正常通過(guò),如果能通過(guò)再一個(gè)個(gè)打開(kāi)逐個(gè)排除問(wèn)題
最終發(fā)現(xiàn)上面的pending情況就是由于mysql的url配置不對(duì),比如端口錯(cuò)誤,或者mysql用戶(hù)的權(quán)限不夠,DataSourceHealthIndicator 的doHealthCheck()會(huì)去連接mysql連接不成功,就卡在連接mysql那里了。
配置正確的url,開(kāi)啟權(quán)限,解決問(wèn)題。
Spring Boot健康檢查相關(guān)配置和整理1.什么是Spring Boot的健康檢查,有什么用?Spring Boot提供了多項(xiàng)組件的健康檢查,有利于監(jiān)控各組件運(yùn)行狀況,但是有時(shí)開(kāi)發(fā)者因此會(huì)啟動(dòng)不成功,報(bào)錯(cuò)等,需要合理配置。
2.Spring Boot項(xiàng)目中都有哪些檢查,如何配置相關(guān)檢查:2.1首先健康檢查引入的包是
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-actuator</artifactid></dependency>
2.2相關(guān)健康檢查相關(guān)Indicator
CassandraHealthIndicator 檢查Cassandra是否可用 DiskSpaceHealthIndicator 檢查磁盤(pán)空間是否不足 DataSourceHealthIndicator 檢查能否從DataSource獲取鏈接 ElasticsearchHealthIndicator 檢查Elasticsearch cluste是否可用 JmsHealthIndicator 檢查JMS broker是否可用 MailHealthIndicator 檢查mail server是否可用 MongoHealthIndicator 檢查Mongo database是否可用 RabbitHealthIndicator 檢查Rabbit server是否可用 RedisHealthIndicator 檢查Redis server是否可用 SolrHealthIndicator 檢查Solr server是否可用可以看到,有各項(xiàng)外部服務(wù)的檢查,具體的請(qǐng)瀏覽官方文檔,這里不再贅余
2.3如何關(guān)閉/開(kāi)啟健康檢查
application.properties里顯式設(shè)定
//如禁止es的健康檢查如下,默認(rèn)均為開(kāi)啟狀態(tài)management.health.elasticsearch.enabled=false
也可以使用*全部禁止
management.health.*.enabled=false
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))2. Python 實(shí)現(xiàn)勞拉游戲的實(shí)例代碼(四連環(huán)、重力四子棋)3. 一款功能強(qiáng)大的markdown編輯器tui.editor使用示例詳解4. Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法5. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程6. 利用CSS制作3D動(dòng)畫(huà)7. Python xlrd/xlwt 創(chuàng)建excel文件及常用操作8. java獲取文件編碼,jsoup獲取html純文本操作9. python 寫(xiě)函數(shù)在一定條件下需要調(diào)用自身時(shí)的寫(xiě)法說(shuō)明10. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼
