我正在阅读关于JMX的第一次,并试图查看它是否可行,以解决我们生产中遇到的问题。JMX远程部署体系结构
我们有一个架构,不断打远程Web服务(由不同的团队在自己的服务器上托管),并要求从它的数据(我们也缓存从这项服务,但它是一个棘手的问题,其中的缓存ISN非常有效)。
我们希望的能力在代码中的一个特定点动态地打开/关闭记录,就在我们打开Web服务之前,我们可以看到我们发送给Web服务的确切URL /查询服务。如果我们只是盲目设置日志记录级别并记录所有Web服务请求,我们就会有天文数字大的日志文件。
JMX似乎是解决方案,我们用托管bean来控制本节中的日志记录,然后可以通过某个管理器(可能只是基本的HTML适配器)远程设置该bean的状态(setLoggingEnabled(boolean)
等)。
我的问题是所有部署相关:
- 如果我写的MBean接口并实现了一套,以及代理(其中注册的MBean,并与平台MBean服务器HTML适配器),做我编译,包&在我的主Web应用程序(WAR)中部署这些应用程序,还是必须编译为自己的应用程序,例如JAR,并且位于应用程序旁边的JVM上?
- 我们有Dev,QA,Demo和Prod envrionment;是否有可能有1个单一的HTML适配器指向一个MBean服务器,它有不同的MBean注册,每个环境1个?如果有一个URL可以到达可以在不同环境中管理bean的地方,那将是非常不错的。
- 如果我上面第一个问题的答案是MBean接口,impl和agent全部部署在应用程序内部,那么是否有可能让您的JMX应用程序部署在一台服务器上(比如说Demo),但要从另一台服务器上监控它?
在此先感谢!
为了响应你的第一个项目,不管我们设置log4j的日志级别是什么,当它登录时,它会记录数十万条,数百万条消息 - 太多我们无法处理的,所以日志级别-based解决方案不适用于我们的情况 – IAmYourFaja 2012-04-12 14:22:59
作为对第二项的回应,假设我们在blah.example.com上有一个演示服务器。该服务器正在运行Tomcat,其中部署了我们的WAR文件(Web应用程序)。现在让我们假设我们将WAR的托管bean配置为使用HTML适配器,以便我们可以通过Web URL对它们进行监听/管理。该URL是否会关闭blah.example.com,或者我们可以将JMX的监控设置为从第二台服务器提供,如fizz.example.com? – IAmYourFaja 2012-04-12 14:24:59