【问题标题】:JMX Remote Deployment ArchitectureJMX 远程部署架构
【发布时间】:2012-04-12 13:58:28
【问题描述】:

我是第一次阅读 JMX,并尝试看看它是否是解决我们在生产中遇到的问题的可行解决方案。

我们的架构不断访问远程 Web 服务(由不同团队在他们自己的服务器上管理)并从中请求数据(我们也从该服务缓存,但它具有粘性缓存不是非常有效的问题)。

我们希望 能够在代码中的某个特定点动态打开/关闭登录,就在我们点击 Web 服务之前,我们可以在其中看到我们的确切 URL/查询'重新发送到服务。如果我们只是盲目地设置日志级别并记录所有 Web 服务请求,我们将拥有 天文数字般的大型日志文件。

JMX 似乎是解决方案,我们在本节中使用托管 bean 控制日志记录,然后可以通过某个管理器(可能只是基本的 HTML 适配器)远程设置该 bean 的状态(setLoggingEnabled(boolean) 等)。

我的问题都与部署有关:

  • 如果我编写 MBean 接口和实现,以及代理(将 MBean 和 HTML 适配器注册到平台 MBean 服务器),我是在我的主 Web 应用程序 (WAR) 中编译、打包和部署它们,还是他们是否必须编译成自己的,比如 JAR 并坐在我的应用程序旁边的 JVM 上?
  • 我们有一个开发、质量保证、演示和生产环境;是否有可能有 1 个 HTML 适配器指向一个 MBean 服务器,该服务器注册了不同的 MBean,每个环境 1 个?如果有一个 URL 可以访问您可以在不同环境中管理 bean 的位置,那就太好了
  • 如果我上面第一个问题的答案是 MBean 接口、impl 和代理都部署在您的应用程序中,那么是否可以将启用 JMX 的应用程序部署在一个服务器上(例如 Demo),但要监控来自另一台服务器?

提前致谢!

【问题讨论】:

    标签: java monitoring jmx


    【解决方案1】:

    如何打包 MBean 在很大程度上取决于可移植性。这些特定服务在此 webapp 范围之外是否有任何实际用途?如果没有,我将简单地声明您的 webapp “JMX Manageable”并构建它。否则,组件化 MBean,将它们放入 jar,将 jar 放入 WEB-INF/lib 并使用您在您的配置中配置的启动 servlet 初始化它们web.xml。

    对于单个 HTML 适配器,是的,这是可能的。可以将其视为拥有 Dev、QA、Demo 和 Prod MBeanServer,然后是一个 Master MBeanServer。您的 HTML 适配器应该呈现主。然后您可以使用OpenDMK cascading service 在 Master 中注册 Dev、QA、Demo 和 Prod 的级联。现在您将在 HTML 适配器显示中看到所有 5 个 MBeanServer 的 bean。

    这是否回答了您的第三个问题?

    【讨论】:

      【解决方案2】:

      JMX 是一种用于远程管理应用程序的技术,例如,当您想要更改配置而不重新启动时,这是最合适的用途。

      但就您而言,我不明白您为什么需要 JMX。例如,如果您使用Log4j 进行日志记录,您可以配置文件看门狗并将日志记录更改为可能的最低级别。 IE。调试。这不需要重新启动,恕我直言,这应该是您最初的设计,即围绕记录器和关卡工作。目前,尚不清楚您的意思以及setLoggingEnable 会发生什么。

      无论如何,托管 bean 应该与您的应用程序一起部署,如果您使用 Spring,那么您很幸运,因为它提供了与 JMX 的非常好的集成,您可以将您的 Spring bean 部署为托管 bean。

      最后,当您连接到您的进程时,您将看到为该 JVM 运行的托管 bean。所以我不确定你对第 2 点的确切含义。

      无论如何,我希望这会有所帮助

      【讨论】:

      • 响应您的第一项,无论我们将 log4j 设置为什么日志级别,当它记录时,它都会记录数十万、数百万等消息 - 我们无法处理,因此基于日志级别的解决方案不适用于我们的情况
      • 针对第二项,假设我们在 blah.example.com 有一个演示服务器。该服务器正在运行 Tomcat,其中部署了我们的 WAR 文件(一个 Web 应用程序)。现在假设我们将 WAR 的托管 bean 配置为使用 HTML 适配器,以便我们可以从 Web URL 监视/管理它们。该 URL 会关闭 blah.example.com,还是我们可以设置 JMX 的监控以从第二个服务器(如 fizz.example.com)提供服务?
      猜你喜欢
      • 2010-10-24
      • 1970-01-01
      • 2011-03-04
      • 2011-01-22
      • 2012-02-20
      • 2012-12-08
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多