微服務健康監控方案


目標

1. 當服務出現,無法被訪問、數據庫連接不上、調用相關依賴的服務訪問不通的問題時候,可以及時的報警通知。並且,有數據記錄用於定位回溯問題點。

可以做到什么

1. 我的服務是否可以被他人訪問通。(服務是否可達)
2. 服務連接的數據庫是否是正常。(數據庫是否正常)
3. 我的服務需要調用的其他服務是否也是正常的。(依賴是否可達)

如何做到

說明:
	1.  spring boot actuator 框架 自身提供 /health 服務健康狀態API。每次訪問這個API ,都會觸發實現了它接口功能的所以方法。 
	2. 數據庫是否可以正常訪問,執行語句。  actuator  自己已經集成。
	3. 業務是否出現異常
		a. 微服務都是通過暴露自身API 來提供業務功能支持的
		b. 基於上述原理,我們可以得到,暴露出去的功能接口出現了異常,那么該接口對應的業務功能就出現了異常。
		c. actuator  自己已經集成 hystrix  ,只要做好接口熔斷設置,當調用actuator/health API的時候就可以獲取到業務是否異常。
	4. 相關依賴服務是否可達,提供一個spring boot 插件 maven ,找個插件實現 actuator/health 接口,獲取所有代理訪問 bean,拿到當前服務的所有依賴服務,訪問依賴服務的/info 節點,驗證是否可達。

預警

	1. 以每分鍾的頻率訪問注冊過服務/health 節點。判斷與解析響應信息,異常觸發企業微信通知。

狀態描述

1 down 2 訪問異常 3 發送通知異常 4 成功

1. down : /health 返回數據為down。顯示返回結果(數據庫異常信息,熔斷異常信息,關聯微服務異常信息)
2. 訪問異常 :訪問服務監控API調用報錯。顯示報錯信息
3. 發送通知異常 : 異常通知消息發送失敗。 
4. 成功 : 微服務運行正常。

可視化

  1. 服務注冊頁面管理 
  2. 服務狀態信息展示 
  3. 服務歷史狀態數據圖形化展示  

體驗地址

1. http://39.101.204.94:11201

為什么需要手動配置?

  1. 兼容非Spring boot 項目
  2. 現實情況,從注冊中心拿到的有一部分是無法訪問的不正確地址。(沒有基本規范!!!)

為什么不使用spring boot admin ?

  1. 一些類原因,說服不了他人信任該項目
  2. 報警機制不滿足要求,
  3. 沒有歷史記錄。

開源地址:

https://github.com/atliwen/ServiceStatusCheck

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM