2009-10-06 59 views
2

我正在研究「門面web服務」,我需要重新考慮它的一部分。「門面web服務」的監視和記錄策略?

的情況下 - 我的web服務(姑且稱之爲 「FacadeWebservice」)是開發從我的系統中隱藏的其他web服務的複雜的內部Web服務:

  • FacadeWebservice電話ExternalWebserviceAExternalWebserviceB和將很快需要致電ExternalWebserviceC
  • ExternalWebserviceAExternalWebserviceBExternalWebserviceC是外部web服務;他們可能會改變和停機。

複雜性越來越高,我需要重新思考我監控FacadeWebservice和外部Web服務的方式。我需要:

  • 我的應用程序狀態的完整視圖(呼叫次數,錯誤代碼發送)
  • 發生了什麼事情與外部Web服務(外部web服務宕機的一個好主意,用我的web服務收到效應初探碼 - 例如,他們中的一個經常出現「技術錯誤/只讀」一段時間)
  • 基本上,一個簡單的視圖/工具,顯示整體狀態。
  • 服務可用性相當多(所以我不需要像Nagios這樣的應用程序),我想知道應用程序級別發生了什麼。

我正在考慮在我的FacadeWebservice中使用JMX--這可能會給我一些無用的圖形和統計信息。

這是要走的路嗎?或者一個好的日誌策略足以完成這項任務(即使外部變化是我的問題的重要組成部分)?

有關該主題的任何建議或經驗?

回答

2

這是一個相當複雜的要求,但你可以嘗試JavaMelody,http://javamelody.googlecode.com

  • 「應用現狀(電話號碼,發送錯誤代碼)」:是的,通過和http HTTP調用的一些錯誤
  • 「外部web服務」的統計:是的,它可以與JavaMelody通過攔截器,如果你使用EJB3或彈簧做
  • JavaMelody並監控在應用層面,它有「圖表和統計」:見截圖
+0

接受! JavaMelody看起來不錯。看起來你是這個項目的主要貢獻者。 – 2009-10-19 08:07:09

+0

是我主要貢獻者 – evernat 2009-10-20 08:12:59

2

JMX的優點是可以運行命令和查詢複雜的數據。

缺點是標準控制檯(與Java版本一起使用)相當有限。它可以做任何事情,但沒有什麼好的。

我的解決方案是創建一個簡單的HTML頁面來顯示數據。它具有以下優點:

  1. 我可以很容易地格式化我希望看到我的方式最有用的數據。

  2. 我可以使用任何Web瀏覽器來一看(在家裏,網吧,手機)

主要缺點是,它不是那麼容易顯示覆雜的數據(如圖形和趨勢)。

[編輯]也就是說,JMX支持顯示圖形和趨勢,但它沒有記憶。所以,從開始使用JMX控制檯開始就會發生什麼。如果您需要查看過去,您必須始終在某處運行JMX控制檯。

在這種情況下,將圖形渲染模塊添加到「簡單HTML頁面」中可以更簡單,您可以在其中繪製所需的圖形。

+0

感謝您的anwser(upvoted!)。顯示覆雜的數據和趨勢是我需求的重要部分。 – 2009-10-08 10:04:51

+0

@Aaron我沒有考慮JMX的「無記憶」缺點。因此創建一個簡單的HTML頁面是一個好方法。 – 2009-10-19 08:04:43

1

我不知道這是一個選項,但它看起來像你需要由ESB組件提供的一些功能:

  • 聚集,Web服務
  • 監測組合物和編排(電話號碼,的proxyed Web服務健康等)
  • 管理控制檯
  • 等等等等

也許你應該檢查出類似的ServiceMix,可以監測通過JMX(見Using a JMX Console with ServiceMix):

alt text http://servicemix.apache.org/jmx-console.data/jconsolembeans.jpg

或其它商業工具(Mule ESB Enterprise ALSB Oracle服務總線...)。

+0

@Pascal ESB看起來不錯,但我認爲這對我的要求有點沉重。 – 2009-10-19 08:05:31

+0

@布萊恩經典構建vs購買決定可能是一個艱難的呼籲......我不知道你的(未來)需要比你更好,你一定是對的:) – 2009-10-19 08:28:02