文档章节

Jolokia架构介绍

随风溜达的向日葵
 随风溜达的向日葵
发布于 2016/07/08 17:36
字数 1158
阅读 567
收藏 2

jolokia架构

    虽然jolokia是为了满足JSR-160的要求,但是他和JSR-160连接器有巨大的差异。其中最引人注目的区别是jolokia传递数据是无类型的数据(说白了就是使用了Json数据传递,替代了RMI传递Java序列化数据的方式)。

    2003年提交的JSR-160规定客户端可以透明的调用MBean服务,无论被调用的MBean是驻留在本地还是在远程的MBean服务中。这样做的好处是提供了一个简洁通用的Java API接口。但是JSR-160的实现存在许多问题:

  1. 它非常危险,因为它隐性暴露了JMX的远程接口。
  2. 它还存在性能问题。无论是远程还是本地调用,调用者至少要知道调用过程是怎么样的、会收到什么结果。在实际使用时,需要有明确的远程消息传递模式,让调用者知道现在是在使用响应较慢的远程调用。
  3. 使用RMI(JSR-160连接器的默认协议栈)时需要使用Java对象的序列化与反序列化机制来构建传递管道。这样做就阻碍了Java技术栈之外的环境来使用它。

    以上3个原因大概就是RMI(JSR-160连接器的默认协议栈)在远程传输协议上逐渐失去市场份额的原因。

    Jolokia是无类型的数据,使用了Json这种轻量化的序列化方案来替代RMI方案。使用这样的方法当然存在一些缺点(比如需要额外增加一层代理),但是带来了一些优势,至少这样的实现方案在JMX世界是独一无二的。

Jolokia植入模式(Agent mode)

    

    上如展示了Jolokia 植入模式的体系结构,说明了与之有关的运行环境。

    Jolokia植入模式是在本地基于http协议提供了一个使用Json作为数据格式的外部接口,此时Jolokia会桥接到本地的JMX MBeans接口。Jolokia使用http服务扩展了JSR-160,因此需要针对Jolokia的运行进行一些额外的处理。多种技术可以工作于http协议,最常规的方法是将jolokia放置到servlet容器中,比如Tomcat或Jetty,这样Jolokia完全可以看做是一个常规的Java web应用,让所有的开发人员都能够很好理解并快速的从中读取数据。

    当然还有更多的方式使用Jolokia植入,比如使用OSGi HttpService或嵌入到有Jetty-Server的应用中。Jvm代理者需要使用Java1.6以上版本,在他运行时,可以连接到任何本地运行的Java进程。

    附注——关于“植入模式”的称呼的说明:官方名为“Agent mode”,按照字面意思应该译为“代理者模式”。但是后面又一个模式叫代理模式(Proxy Mode),为了更便于理解和表达中文意思,这里命名其为“植入模式”。

Jolokia代理模式

    代理模式用于无法将Jolokia部署到目标平台上(说白了就是无法部署到同一台服务器)。在这个模式下,唯一可用的方式就是目标服务开启了JSR-160连接。这样做大部分是规范原因(原文是“political reasons”——政治原因-_-)——有时候根本不允许在目标服务器部署一个额外的软件系统,或者是这样做需要等待一个漫长的审批流程。还有一个原因是目标服务器已经通过RMI开启了JSR-160连接,并且我们不想额外再去在本地部署Jolokia。

    可以将jolokia.war部署到servlet容器中(这个war包也可用于植入模式)。下图是一个典型的代理模式架构。

    

一个jolokia客户端发送常规的请求到jolokia代理服务,这个请求包含了额外的数据用于标记要查询的目标。所有的路由信息包含在请求信息中,使得代理服务无需特别的配置即可工作。

结尾

    如果没有什么特别的限制,优先使用植入模式。植入模式比代理模式有更多的优势,因为他没有附加层、减少了维度成本和技术复杂性、而且性能也优于代理模式。此外,一些jolokia特性也无法在代理模式中使用,例如“merging of MBeanServers”。

© 著作权归作者所有

随风溜达的向日葵
粉丝 297
博文 91
码字总数 207714
作品 0
广州
其他
私信 提问
Jolokia 1.2.2 发布,JMX 远程访问方法

Jolokia 1.2.2 发布,此版本主要包括 bug 修复;Jolokia 支持从 JMX 属性和 JMX 操作符返回值中通过通配符来选择值。 Jolokia 是一个用来访问远程 JMX MBeans 的崭新方法,与 JSR-160 连接器...

oschina
2014/06/17
584
0
Jolokia 1.2.0 发布,JMX 远程访问方法

Jolokia 1.2.0 发布,此版本能通过 UDP 多播请求自动搜寻代理,可以很容易获得连接参数;提供 MBean ,通过 JMX 允许这种查找; Jolokia "版本" 协议命令现在能显示额外的一些数据,比如代理...

oschina
2014/02/26
462
1
Jolokia 1.1.4 发布,JMX 远程访问方法

Jolokia 1.1.4 是一个小的更新版本,除了 bug 修复,还包含两个新的配置变量用于定制使用代理的情况。 Jolokia 是一个用来访问远程 JMX MBeans 的崭新方法,与 JSR-160 连接器不同的是,它使...

oschina
2013/10/05
351
0
Jolokia 1.0.5 发布, JMX远程访问方法

Jolokia 1.0.5 发布,该版本修复了一些小 bug ,提供了一个 JavaScript 插件(基于 Cubism)用于展示时序图表。 Jolokia 是一个用来访问远程 JMX MBeans 的崭新方法,与 JSR-160 连接器不同的...

oschina
2012/07/24
285
0
Jolokia 1.1.1 发布, JMX远程访问方法

Jolokia 1.1.1 增强了 JVM agent;新的处理参数;可根据条件列出所有 MBeans,基于最后一次请求之后是否修改。 Jolokia 是一个用来访问远程 JMX MBeans 的崭新方法,与 JSR-160 连接器不同的...

oschina
2013/03/28
339
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux的基本命令

目录的操作命令(增删改查) 增: mkdir 目录名称; 查: ls 可以看到该目录下的所有的目录和文件 ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 ls -l,可以看到该目录下的所有目录和...

凹凸凸
今天
2
0
在古老unix中增加新用户

Installing 4.3 BSD Quasijarus on SIMH 目标:要在4.3BSD中新增加用户dmr,指定目录/home/dmr,uid为10 gid=31(guest组,系统已建立) 4.3BSD还没有adduser或useradd 直接修改/etc/passwd...

wangxuwei
今天
2
0
Bootstrap(六)表单样式

基本样式 所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好...

ZeroBit
昨天
3
0
SSL 证书格式转换

SSL 证书格式转换 不同服务器情况下,需要不同的证书格式。 比如 pem 转 pfx。 pem在window 平台下可以导入,但是无法正常使用。 需要转换成pfx。 推荐在线转换工具,由中国数字证书网站提供...

DrChenXX
昨天
2
0
HAProxy

xx

Canaan_
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部