【发布时间】: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