jmx 复用 jmx_JMX:一些入门说明

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 上下载的项目在本地安装依赖时报错 Could not resolve dependency

安装依赖时报错:无法安装依赖 看报错里面的提示:this command with --force, or --legacy-peer-deps –force 会无视冲突,并强制获取远端npm库资源,即使本地有资源也会覆盖掉;–legacy-peer-deps:安装时…

python_fullstack基础(十一)-常用模块

python常用模块 re模块 一、正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1、字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在…

npm 安装依赖遇到的问题

npm npm的服务器位于国外可能会影响安装 cnpm 淘宝团队做的国内镜像 // 安装 cnpm npm install cnpm -g --registryhttps://registry.npm.taobao.org // 查看版本 cnpm -v // 查 npm 的源 npm config get registry一、cnpm -v 在 cmd 中能识别,但是 VsCode 无法识别…

maven 父maven_Maven的鸟瞰图

maven 父maven我们每天要做的一件事是使用Maven通过发出诸如mvn install之类的构建命令来构建我们的项目。 然后,Maven查看我们项目的配置文件(亲切地称为POM),神奇地找出要执行的操作,并且,嘿,…

mysql断网_断网的情况上如何访问本机的mysql

断网的情况下怎么访问本机的mysql我发现把网络断掉后mysql就不能访问了。使用phpmyadmin(http://localhost/phpmyadmin/index.php?)访问,输入用户名和密码后点击登陆,就会出现“#2002 Cannot log in to the MySQL server”错误。使用命令行登陆&#xf…

Py IO model

事件驱动模型 上节的问题: 协程:遇到IO操作就切换。 但什么时候切回去呢?怎么确定IO操作完了? 很多程序员可能会考虑使用“线程池”或“连接池”。“线程池”旨在减少创建和销毁线程的频率,其维持一定合理数量的线程&a…

Fiddler 扒取微信小程序的图片

安装 Fiddler http://www.downza.cn/soft/234727.html Tools-options配置 如果无法抓取到PC微信小程序 解决办法: 打开小程序,任务管理器找到小程序所在位置,删除文件内容 一般路径为\Tencent\WeChat\XPlugin\Plugins\WMPFRuntime 删除…

JLBH – Java延迟基准线束介绍

在这篇文章中: 什么是JLBH 我们为什么写JLBH JMH和JLBH之间的区别 快速入门指南 什么是JLBH? JLBH是可用于测量Java程序中的延迟的工具。 它具有以下功能: 旨在运行比微型基准测试更大的代码。 适用于使用异步活动(如生产者…

mysql 5.7 mts_mysql5.7 中启用MTS后error log中大量Note日志分析

mysql5.7,启用基于logical_clock的多线程复制,发现error日志增长很快,查看日志发现大量关于多线程复制的Note级别日志。1234567891011121314152018-07-03T03:22:01.63837108:00 8941 [Note] Multi-threaded slave statistics for channel : seconds elapsed 298; e…

Nginx 怎么给一台服务器,配置两个域名?详细的解说+截图教程

一、 环境、条件准备 一台云服务器(我的是腾讯的centos7) 至少两个域名。(我的是simuhunluo.xyz和simuhunluo.top。这两个域名之间没有任何关系,我是在阿里用两个账号分别注册的。) 云服务器上面已经搭建了ngin…

extjs6 mvvm_ZK 6中的MVVM初探

extjs6 mvvmMVVM与MVC 在上一篇文章中,我们已经看到Ajax框架ZK如何采用CSS选择器启发的Controller来在View中连接UI组件并监听它们的事件。 在此ZK MVC模式下, View中的UI组件无需绑定到任何Controller方法或数据对象。 使用选择器模式作为将View状态和事…

多线程 调用 axis 报错_java笔记录(三、多线程)

1、进程和线程:进程:正在进行的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程:进程内部的一条执行路径或者一个控制单元。两者的区别:一个进程至少有一个线程进程在…

使用PropertyPlaceholderConfigurer读取属性文件

1.简介 通常,当我们考虑将多个应用程序部署到生产环境之前在其中部署服务器时,可以在外部属性文件中配置特定于环境的参数 。 它可能是数据库详细信息,对于测试服务器和生产服务器而言,这是不同的。 因此最好选择将数据库配置文件…

第二天:Swift手势操控弹性按钮

参考链接:https://www.jianshu.com/p/f080ede0f3a8 1 import UIKit2 3 fileprivate let buttonH: CGFloat 2004 5 class ViewController: UIViewController, UIGestureRecognizerDelegate {6 7 IBOutlet weak var segmentControl: UISegmentedControl!8 var randomBtn…

ionic2 安装与cordova打包

1.安装: cnpm install -g cordova ionic ionic start name cd name cnpm install 2、环境配置: http://www.cnblogs.com/changyaoself/p/6544082.html 这里是具体配置。 测试环境: cordova platform list 如下才可以: 3、添加…

mysql vacuum_PostgreSQL DBA快速入门(四) - 体系架构

PostgreSQL在开源关系型数据库市场是最先进的数据库。他的第一个版本在1989年发布,从那时开始,他得到了很多扩展。根据db-enginers上的排名情况,PostgreSQL目前在数据库领域排名第四。 本篇博客,我们来讨论一下PostgreSQL的内部架…

总结mysql的基础语法_mysql 基础sql语法总结 (二)DML

二、DML(增、删、改)1)插入数据第一种写法:INSERT INTO 表名 (列名1,列名2,,......)VALUES(列值1,列值2,......)第二种写法:INSERT INTO 表名 VALUES(列值1,列值2,......…

提高团队协作效率

提高团队协作效率 分工合理,责任明确 团队是由个人组成的,团队中的个人往往经历不同、背景不同、性格有差异、水平有高低。在团队形成后、正式开工前,首先应该进行合理分工,要结合每个 人的特点和爱好,充分发挥出每个人…

Java中Array和ArrayList之间的9个区别

array和ArrayList都是Java中两个重要的数据结构,在Java程序中经常使用。 即使ArrayList在内部由数组支持,了解Java中的数组和ArrayList之间的差异对于成为一名优秀的Java开发人员也至关重要。 如果您知道相似点和不同点,则可以明智地决定何时…

vue 在已有的购买列表中(数据库返回的数据)修改商品数量

连续加班一个月 连续通宵三天 到最后还是少了一个功能 心碎 简介:一个生成好的商品列表(数据库返回的数据) 首先拿到我们需要渲染的数组 在data中定义 我是在测试的时候 直接写了两条数据 下面开始点击删除 点击添加是一样的代码 只不过加号…