jmx 复用 jmx

JMX(Java管理扩展)是一种J2SE技术,可以管理和监视Java应用程序。 基本思想是实现一组管理对象,并将实现注册到平台服务器,在平台服务器上,可以使用一组连接器或适配器从本地或远程调用这些实现到JVM。
一个管理/仪器对象称为MBean(代表托管Bean)。 一旦实例化,一个MBean将在平台MBeanServer上注册一个唯一的ObjectName。 MBeanServer充当MBean的存储库,支持创建,注册,访问和删除MBean。 但是,MBeanServer不会保留MBean信息。 因此,随着JVM的重新启动,您将失去其中的所有MBean。 通常,可以通过其MBeanServerConnection API访问MBeanServer,该API在本地和远程均可使用。

MBean的管理接口通常由[1]组成

  • 可以读取/写入的命名和类型化属性
  • 可以调用的命名和类型操作
  • MBean可以发出的类型化通知
例如,说需要在运行时管理一个应用程序的线程池参数。 使用JMX,只需编写一个具有与设置和获取这些参数有关的逻辑的MBean,然后将其注册到MBeanServer。
现在的下一步是将这些mbean暴露给外界,以便远程客户端可以调用这些Mbean来管理您的应用程序。 可以通过通过协议连接器和协议适配器实现的各种协议来完成。 协议连接器基本上按原样公开MBean,以便远程客户端看到相同的接口(JMX RMI连接器就是一个很好的例子)。 因此,基本上应该为JMX技术启用客户端或远程管理应用程序。
协议适配器(例如:HTML,SNMP)根据客户端期望的协议调整结果(例如:对于基于浏览器的客户端,通过HTTP以HTML格式发送结果)。
现在,MBean已正确暴露在外部,我们需要一些客户端访问这些MBean来管理我们的应用程序。 根据客户使用连接器还是适配器,基本上有两类可用。
JMX客户端使用JMX API连接到MBeanServer并调用MBean。 通常,JMX客户端使用MBeanServerConnection连接到MBeanServer,并通过提供MBean ID(对象名称)和必需的参数来通过MBean Server调用MBean。 基本上有三种类型的JMX客户端。
本地JMX客户端 :与MBeanServer在同一JVM中运行的客户端。 这些客户端也可以在内部运行,因此它们本身也可以使用MBeanServer API。
相同的JVM。
代理 :代理是管理MBeanServer本身的本地JMX客户端。 请记住,MBeanServer不会保留MBean信息。 因此,我们可以使用代理提供此逻辑,该逻辑将使用其他功能封装MBeanServer。 因此,代理负责初始化和管理MBeanServer本身。
远程JMX客户端 :远程客户端与本地客户端的不同之处仅在于,它需要实例化连接器以连接到连接器服务器,以获得MBeanServerConnection。 顾名思义,它们当然会在远程JVM中运行。
客户端的另一种类型是管理客户端,它使用协议适配器连接到MBeanServer。 为了使它们起作用,应存在相应的适配器并在要管理的JVM中运行它们。 例如,HTML适配器应存在于JVM中,以使基于浏览器的客户端连接到它以调用MBean。

下图总结了到目前为止描述的概念。

我在JMX上的快速笔记到此结束。 可以在[2]中找到关于JMX主要概念的非常好的阅读。 同样,Oracle上的JMX学习资源也是获得JMX的良好起点。

[1] http://docs.oracle.com/javase/6/docs/technotes/guides/jmx/overview/instrumentation.html#wp998816
[2] http://pub.admc.com/howtos/jmx/architecture-chapt.html

参考: JMX:来自Source Open博客的JCG合作伙伴 Buddhika Chamith的一些入门说明 。

翻译自: https://www.javacodegeeks.com/2012/06/jmx-some-introductory-notes.html

jmx 复用 jmx

jmx 复用 jmx_JMX:一些入门说明相关推荐

  1. 超详细的新手React入门教程

    React简介 react是什么? 为什么学? React入门 React 基础案例 JSX基础语法 两种创建虚拟DOM的方式 1.使用JSX创建虚拟DOM 2.使用JS创建虚拟DOM jsx语法规则 ...

  2. Spring Cloud微服务系列文,服务调用框架Feign

    之前博文的案例中,我们是通过RestTemplate来调用服务,而Feign框架则在此基础上做了一层封装,比如,可以通过注解等方式来绑定参数,或者以声明的方式来指定请求返回类型是JSON.    这种 ...

  3. 如何学习Linux驱动开发?

    原文链接:https://blog.csdn.net/hwunion/article/details/41621655 Linux驱动开发,看起来是一份很高大上的职业,毕竟从事上层应用开发人员太多,而 ...

  4. JMX:一些入门说明

    JMX(Java管理扩展)是一种J2SE技术,可以管理和监视Java应用程序. 基本思想是实现一组管理对象,并将实现注册到平台服务器,在平台服务器上,可以使用一组连接器或适配器从本地或远程调用这些实现 ...

  5. Python+django网页设计入门(16):优化设计复用分页代码

    前导课程: Python+django网页设计入门(15):公用模板设计与使用 Python+django网页设计入门(14):使用中间件对抗爬虫 Python+django网页设计入门(13):表单 ...

  6. Linux入门实践笔记(七)——云服务器中配置Java项目的JMX连接失败问题解决记录

    Linux入门实践笔记(七)--云服务器中配置Java项目的JMX连接失败问题解决记录 参考文章: (1)Linux入门实践笔记(七)--云服务器中配置Java项目的JMX连接失败问题解决记录 (2) ...

  7. Java管理扩展JMX入门学习

    系列文章目录 Java管理扩展JMX入门学习 Spring JMX编程学习(一)- 手动注册bean到MBeanServer Spring JMX编程学习(二)- 以Bean的方式注册MbeanSer ...

  8. JMX 入门(一)基础操作

    JMX 官方教程:http://docs.oracle.com/javase/tutorial/jmx/index.html 这篇博客参考官方教程以及个人的理解,通过实际的代码和操作来学会使用 JMX ...

  9. JMX 入门(二)Java客户端

    这篇博客参考官方教程以及个人的理解,通过实际的代码和操作来学会使用 JMX. JMX 入门(一)基础操作 JMX 入门(二)Java客户端 JMX 入门(三)认证加密 创建 JMX 客户端 前面一篇中 ...

最新文章

  1. 孔雀翎----《Programming C# 》中文版 第4版
  2. 如何理解JS的单线程?
  3. 在家搭建大数据分布式计算环境!
  4. 苏联曾经的AI有多强?一段几乎已被世人遗忘的往事
  5. oracle创建序列seq起始值为1_oracle 重置序列从指定数字开始的方法详解
  6. dbeaver导出表结构和数据_mall数据库表结构概览
  7. 变速后没有声音_问答 | 现代朗动at,启动后怠速不稳,热车后正常,是什么问题?...
  8. 新UI云开发壁纸小程序源码(新修复版带编译教程)
  9. Visual Studio 2010 实用功能总结
  10. 统计学基础学习笔记:描述统计量
  11. drupal php filter,Drupal A-Z and number filter
  12. (60)FPGA比较器实现(function)
  13. Effective c++读书笔记
  14. FreeBSD NetBSD OpenBSD DragonFlyBSD 操作系统
  15. 瑞友天翼提示mysql error_瑞友天翼加载应用程序出错解决方法
  16. Flash 游戏设计笔记:计时器制作
  17. PMP中英文术语对照
  18. FAT32 文件系统 实践
  19. 计算机二级Python笔记——第一部分
  20. 2016 UESTC Training for Search Algorithm String I - 谭爷剪花布条 KMP

热门文章

  1. Java NIO系列教程(十) Java NIO DatagramChannel
  2. Java Map集合面试题汇总
  3. hibernate配置详情3(Dept)
  4. 图的广度优先算法+遍历
  5. html session 登录页面跳转页面跳转页面,session失效后跳转到登陆页面
  6. idea无法启动Tomcat
  7. logback日志配置
  8. lin通讯从节点同步间隔场_汽车行业必须知识--CAN FD通讯
  9. Linux获取本机hostname函数,Linux下获得主机与域名-gethostbyname和gethostbyaddr
  10. redis-java客户端jedis测试