Java分布式应用学习笔记08JMX规范与各种监控场景.pdfVIP

Java分布式应用学习笔记08JMX规范与各种监控场景.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java分布式应用学习笔记08JMX规范与各种监控场景.pdf

nJava 分布式应用学习笔记 08JMX 规范与各种监控场景 刘岩 Email:suhuanzheng7784877@163.com Blog: 1. JMX 规范 JMX 是“Java 管理扩展的”的缩写,它和其他 JavaEE 类似也是曾经的 Sun 提出的一种规 范(规约),从名字上可以看出主要是负责系统管理。是一个为系统加入或者说扩展成 有管理功能的规约,只要按照这套规约行事,您的系统,某些某块就具备被其他工具 (例如JConsole)管理的能力。换句话说就是可以用JMX 来监控咱们的系统运行情况, 还有可以在运行时环境像 Web Service、RMI 一样调用系统管理类的一些方法。实现此规 范的框架也很多:Spring、Tomcat、JBoss 容器…… 2. 场景简述 咱们先假设一个情景,夫妻二人。男的因为工作需要要去外地出差,因公司规定,出差 不能带家属,女方不能跟过去啊。所以女方给他们 2 个人一个手机——HTC 吧。里面有个 小程序,叫做 JMXImpl4Android。等到男方出差在外地了,在外地出差的城市,一天晚上 和同事散步,路上遇到个发廊(各位男性朋友明白的啊)。此时远在另一个城市的妻子 的手机突然响了,手机GIS 定位信息告知妻子:“您的丈夫在一个发廊门前徘徊,请注 意”。妻子急了,立刻给丈夫打电话:“你干嘛呢?”。丈夫战战栗栗,汗出如浆,乖乖 的回酒店玩DOTA 了! 我们来用 Java 消息扩展的视角来看看这个场景,咱们伟大一些相当于那个妻子,那个 丈夫就相当于咱们的系统,出差事件相当于咱们将系统部署到了真正的远程的运行环境, 妻子曾 HTC 手机给丈夫您可以理解成把丈夫打 成具有 JMX 规范的系统,换句话说:此 丈夫可监控。因为一个小小的 GIS 应用就能让妻子随时监控丈夫的状态——想邪恶一把, 并且还可以根据系统的状态进行相应的措施——打电话告诉丫的别想出轨,虽然新的婚 姻法下来了,但是房子是老娘买的,出轨?你试试! 看到这里,大家估计明白了JMX 是什么东西,干什么用的了。但是估计大家有一个疑问, 这个和 Java 分布式系统有什么关系啊?在分布式系统中有时候我们需要监控各个分机 器的状态,比如想知道机器此时此刻的 Tomcat 的运行状况如何,还可以根据状况调用 相关的操作,比如 shutdown 服务、去除已部署的web 工程等等与服务有关的操作。或者 对于调度这些节点机的主控机器也可以进行监控,在远程使用一个 JConsole 调用即可 。 Ok,说了这么多,我们看示例吧,最后再来用实例解释JMX 的那些晦涩的理论概念。 3. 监控本机程序 这种场景在实际中不太常用,对于本机的程序来说,需要监控,按需调用被托管的类方 法还真不多。 相当于丈夫就在你面前,他的一举一动都在你眼皮底下,你还需要一个 Android 小程序 去监控他吗?笔者使用的是 Spring3 的实现。所以先将Spring 的包下载下来,放到项目 的classpath 中。 咱们先写一个最普通的JavaBean package jmx; 1 / 9 public class HusbandLocal { // 属性 private String name; private int age; private String message; // set,get public String getName() { System.out.println(name: +name); return name; } public void setName(String name) { = name; } public int getAge() { System.out.println(age: +age); return age; }

文档评论(0)

weiwoduzun + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档