我們有許多相關的Java Spring應用程序在我們的服務器上運行。讓我們稱他們爲App1,App2 & App3。按照標準,所有這些都使用common-utils.jar中的通用代碼。我希望這些應用程序(App1,App2 & App3)將其狀態廣播到一個或多個遠程監聽器。對於例如 App1:我未能讀取文件abc。 App2:我使用了超過90%的堆空間等。JMX通知設計
這些事件的監聽者將採取特定的操作,例如根據收到的通知向支持人員和/或客戶端發送電子郵件。
我能想到的最佳解決方案是在our-common-utils.jar中啓用NotificationSender JMX(實現NotificationBroadcasterSupport)bean。這將有一個消息從通知隊列中消耗,並將sendNotification()發送給每個通知的偵聽器。這將由我們的生態系統中的每個應用程序完成,但使用common-utils的通用代碼。
您是否發現此設計中存在任何缺陷?任何更有效的方法/框架?
非常感謝:)