gpt4 book ai didi

java - JMX 通知设计

转载 作者:行者123 更新时间:2023-11-30 10:25:48 25 4
gpt4 key购买 nike

我们的服务器上运行着许多相关的 Java Spring 应用程序。让我们称它们为 App1、App2 和 App3。按照标准,所有这些都使用 our-common-utils.jar 中的通用代码

我希望这些应用程序(App1、App2 和 App3)将它们的状态广播给一个或多个远程监听器。例如App1:我未能读取文件 abc。App2:我正在使用超过 90% 的堆空间等。

这些事件的监听器将采取特定操作,例如根据收到的通知向支持人员和/或客户发送电子邮件。

我能想到的最佳解决方案是在 our-common-utils.jar 中启用 NotificationSender JMX(实现 NotificationBroadcasterSupport)bean。这将有一个线程从通知队列中消耗并为每个通知向监听器触发 sendNotification() 。这将由我们生态系统中的每个应用程序完成,但使用来自 common-utils 的通用代码。

你认为这个设计有什么缺陷吗?有没有更有效的方法/框架?

非常感谢:)

最佳答案

替代解决方案是使用任何分布式协调服务 zookeeper例如。我在我的第一个微服务项目中使用了它。如我所见,您正在使用 spring。 Spring Cloud 提供了您可以以声明方式使用的必要解决方案。我会关注@FeignClient .在spring的世界里,它使用起来非常简单灵活。

如果我现在要处理这个问题,我会使用 spring hystrix基于解决方案。为了简化 Java 服务之间的集成,我建议检查 service-registration-and-discovery .


如果 spring 不是您项目中的通用引擎部分,请忽略我的意见(可能您需要其他供应商解决方案,有很多替代方案)。我将注意力集中在 spring 解决方案上,因为 spring 在我的项目中不受限制,只要合理,我可以使用任何我想使用的东西。

关于java - JMX 通知设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com