|
tomcat很熟悉吧?天天用~~
往下看就没有几个敢这么自认了,http://tmis.tohot.cn/bbs/images/smilies/lol.gif
大家可以尝试访问这样的地址 : http://localhost:8080/manager/serverinfo
http://localhost:8080/manager/jmxproxy/?qry=*%3Aj2eeType=Servlet%2c*
jmxproxy是一个servlet,为tomcat的核心jmx提供一个网页形式的访问.我们熟悉的weblogic控制台也是这么一个东西,想想,console里的链接参数是不是都长得这样: *MBean*,
更多细节可以参考:
http://tomcat.apache.org/tomcat-5.5-doc/manager-howto.html
http://e-docs.bea.com/wls/docs81/jmx/index.html
关于jmx在管理方面的信息,再提供几个关键字:jmx,mx4j,jboss微内核,jdmk,jconsole,mbean,weblogic mbean,
更关键的是这东西是标准的,相关资源丰富,还是可扩展的,
我们很容易为tomcat,weblogic等具有jmx服务的系统写插件,也可以用jconsole或其他客户端来管理监控tomcat,weblogic,还可以把很多操作自动化,譬如用ant部署应用.
在我们的项目中使用jmx可以实现更加直观和方便的程序监控和管理.
譬如监视session,access,调节程序参数,控制行为.可以集成多个应用到一个控制界面.等等,当然需要我们的程序架构进行一定调整.
我假设有这样一个使用场景,
国税远程运行着wmd,网上申报,静态网站,三者通过一个控制页面集成控制.页面上显示wmd的任务状态和流量,网上申报用户的活动情况,静态网站的访问统计;可以控制wmd停止重启某个任务,重新部署web,清除session等等
不使用jmx当然也可以实现这些功能,但必然没有这么简便和强大.
jmx提供了管理程序的很多可能性,非常适合对程序的监控管理有很高要求的场合.
wmd目前的任务容器支持动态管理任务,包括载入,重启,恢复,删除操作,也可以动态调节线程数量和一些其他参数,可以远程操作.
但这部分远程操作是使用socket加自定义协议写的,还可以通过servlet提供http界面,但整个开发还真是挺费神的.
如果使用jmx,则这个远程控制部分的代码可以节省大部分,通过mx4j即可实现http管理,通过spring jmx即可把pojo暴露注册为mbean,直接以tomcat,weblogic为jmx服务器,在测试开发阶段可以用jconsole调试,
轻松百倍就可以得到一个强大可控的软件环境.
之前一直知道jmx,但就是没有仔细研究过,写完wmd后才真正体会到jmx的强大之处,真是失败啊.
要快速开发高度可控的java程序,jmx是一定要推荐大家使用的...
同样的技术,还有jms,这也是一个不容忽视的经典技术,很是推荐要做qq,email这类消息系统的同事看看.
【2008-11】
|
|