簡體   English   中英

Javalite for Microservice項目,是否提供應用程序跟蹤/監控支持?

[英]Javalite for Microservice project, is application Tracking/Monitoring support available?

我必須使用Javalite作為基於微服務架構的項目,所以想要檢查是否可以通過一些現有的插件或任何有關自定義更改的建議來獲得跟蹤支持(類似於/ startup / health&/ actuator / prometheus in Spring Boot)支持相同?

ActiveWeb沒有直接支持,但我們通常會構建類似的服務。 “健康”對於不同的應用程序意味着許多不同的東西。 我們使用JavaLite構建了許多企業項目,到目前為止已經制定了以下方法。 通常我們有一個由多個應用組成的項目:

  • 面向客戶的Web應用程序(Web)
  • 用於控制帳戶,報告等的后台應用程序(管理員)
  • Web服務API(API)
  • 后端處理應用程序(工人)

每個應用程序都是集群的,因此我們將擁有許多實例,並且我們需要知道每個實例的運行狀況。 每個實例的健康狀況由以下因素確定:

  1. 當前的空閑堆空間
  2. 訪問數據庫(通常是多個)
  3. 訪問緩存
  4. 訪問本地服務(網絡到api,工作人員等)
  5. 訪問NFS
  6. 這個應用程序還有什么其他意義

所以......我們為每種類型的應用程序實現了一個所謂的StatusController 當調用其index()方法時,這樣的狀態控制器將調用所有服務,這個應用程序的生計是必需的,並將生成帶有結果的JSON文檔。 如果一切順利,JSON doc很簡單{"status":"OK", "service1": "OK", "service2": "OK"}或類似的東西。 如果其中一個服務不可訪問,它會生成異常並使用包含確切異常的JSON文件進行響應: {"status":"ERROR", "service1": "OK", "service2": "Exception: exception stack trace"}

Admin Web應用程序還包含一個健康頁面,該頁面將聚合對群集中所有應用程序的調用,並將顯示一個也是彩色編碼的完整報告(綠色 - 正常,紅色 - 錯誤)。 因此,通過瀏覽此頁面,如果出現問題,我們確切知道群集中出現了什么問題。

但是,Admin Health頁面還有第二個目的。 它是Pingdom調用的Web服務。 如果群集是健康的,則此頁面返回HTTP代碼200,如果至少有一個問題,則返回500.我們使用Pingdom中的健康頁面URL,每分鍾跟蹤此頁面一次。 只要群集中的任何服務出現問題, StatusController就會向StatusController返回500,它會向正在通話的任何人發送通知。 當我們收到通知時,我們會查看運行狀況頁面,了解群集的錯誤信息。

我們幾年前就制定了這種方法,從那時起就一直忠實地為我們服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM