SpringBoot 健康檢查資料格式問題排查

2021-10-02 20:10:47 字數 1123 閱讀 7882

最近運維一直反饋我的應用健康檢查返回的資料格式不正確,具體如下

}正常的返回資料如下

,"diskspace":}}}可見,異常的返回資料中,出現了很多dollar符開頭的表示式,如果把這些表示式替換成對應的值,這個返回結果並沒有什麼問題。

一開始懷疑是專案中pom檔案配置不正確導致的,於是找了中介軟體團隊的文件對照著重新配置pom,但是並沒有什麼作用。又找了健康檢查資料正常的應用來進行對比,仍然沒有發現問題。

這時候真是一臉矇逼,完全不知道問題在**,網際網路上也完全找不到任何類似的問題。

突然想到乙個辦法:排除法

首先從springboot官網上初始化乙個springboot的demo專案,同時找來乙個健康檢查資料異常的專案。

將健康檢查資料異常的專案裡的**一點點copy到demo專案中,每做一次改動後都檢視健康檢查資料是否正常。

剛開始時,demo專案的健康檢查資料都是正常的,隨著copy過來的**越來越多,終於健康檢查資料不正常了,此時基本可以確定是專案裡的**引起了健康檢查資料的異常。

檢視新增的**時,發現了如下的乙個配置

@configuration

public

class

springconfig

}

這段配置是為了使rest介面返回json資料時使用fastjson來進行格式化,而非springboot預設的jackson來進行格式化。

突然想到,獲取健康檢查結果的介面也是乙個rest介面,那麼很可能就是這個配置導致健康檢查資料的異常。

接下來進行驗證,注釋掉上面的這段配置

重啟專案,檢視健康檢查資料

正常!!!!

lvs mysql健康檢查 lvs 健康檢查方式

一 tcp 4層檢查 virtual server 192.168.2.213 80 delay loop 6 lb algo wlc 採取權重式最少鏈結分配 lb kind dr 採取dr模式 protocol tcp real server 192.168.2.220 80 tcp check ...

springboot 如何禁用某項健康檢查

management.health.mail.enabled management.healthwww.cppcns.com.mongo.enabled managemeycoyomdent.health.redis.enabled management.health.solr.enabled ma...

Nginx被動健康檢查和主動健康檢查

1.被動健康檢查 nginx自帶有健康檢查模組 ngx http upstream module,可以做到基本的健康檢查,配置如下 upstream cluster server nginx只有當有訪問時後,才發起對後端節點探測。如果本次請求中,節點正好出現故障,nginx依然將請求轉交給故障的節點...