JMX通知设计



我们在服务器上有许多相关的Java Spring应用程序。让我们称它们为app1,app2&App3。作为标准,所有这些都在我们的common-utils.jar中使用常见代码

我希望这些应用程序(app1,app2&app3)将其状态广播到一个或多个远程听众。例如App1:我未能读取文件ABC。App2:我使用的是超过90%的堆空间等。

这些事件的听众将采取特定的措施,例如根据收到的通知发送电子邮件给支持和/或客户。

我能想到的最好的解决方案是在我们的common-utils.jars.jar中拥有一个启用通知者JMX(在notification broadcastersupport)。这将有一个从通知队列中消耗的线程,并将Sendnotification()向听众发出通知。这将由我们的生态系统中的每个应用程序完成,但使用共同餐馆的通用代码。

您看到此设计中的任何缺陷吗?这样做的任何更有效的方法/框架?

非常感谢:)

替代解决方案是使用任何分布式协调服务Zookeeper。我在我的第一个微服务项目中使用了它。我可以看到您正在使用spring。弹簧云提供了您可以用声明方式使用的必要解决方案。我会注意@feignclient。它非常简单,在spring World中很灵活。

如果我现在要处理此问题,我将使用基于spring hystrix的解决方案。为了简化您的Java服务之间的集成,我建议您检查服务注册和发现。


如果spring不是您的项目中的一般引擎部分(可能是您需要其他供应商解决方案,那么有很多替代方案)。我将注意力集中在春季解决方案上,因为春季不受我的项目的限制,我可以使用我希望的任何东西。

最新更新