Hawtio和Apache JClouds

介绍

我最近花了一些时间为Hawtio开发 Apache Jclouds插件。 尽管还有很多待完成的工作,但我无法激动,想分享……

这个Hawtio到底是什么?

每当我注意到一个很酷的开源项目时,我通常都会订阅邮件列表,以便我可以更好地了解项目的进度,方向等。迟早总会有一封电子邮件以“ [Discuss] ”为主题– Webconsole for our cool project ”。

这样的电子邮件经常以冗长的讨论结束,这些讨论是关于最佳使用什么Web框架,目标平台应该是什么以及控制台如何与上游/下游项目集成。

一个很好的例子是Apache ServiceMix 。 ServiceMix在Apache Karaf上运行, Apache Karaf在Apache Felix上运行,并且还嵌入Apache ActiveMQ,并且这些项目中的每个项目都有其自己的Web控制台 。

控制台的数量增长得如此之大,以至于用户不得不雇用个人帮助来跟踪每个Web控制台的URL。 好吧,也许这是一个夸大的说法,但您明白了。 而且,如果我们还考虑到某些项目绑定到特定的运行时,而其他项目则没有,那么我们将迎来一场完美的Web控制台风暴。

Hawtio通过提供带有大量插件的轻量级HTML5模块化Web控制台来解决此问题。 Hawtio可以在任何地方运行,因为它没有绑定到特定的运行时,而且它是模块化的,这意味着它很容易编写和挂接自己的插件。

为Hawtio编写插件

Hawtio是一个完整的客户端框架。 每当需要与后端通信时,都可以使用rest。 为了使事情变得更容易,它还使用Jolokia ,它通过HTTP通过JSON公开JMX。 即使框架没有提供rest接口,而是通过JMX公开内容,这也使钩住框架变得非常容易。

一旦与后端的通信进行排序,就很容易创建一个插件。 Hawtio使用AngularJS ,这使webapps的开发成为真正的乐趣。

Jclouds插件

Apache Jclouds还没有rest接口,也没有JMX支持。 实际上,从1.6.1发行版开始,它就具有可插入的JMX支持。 您需要做的就是使用ManagementLifecycle模块创建一个Apache Jclouds Context:

ContextBuilder builder = ContextBuilder.newBuilder(providerOrApi)..credentials(identity, credential).modules(ImmutableSet.<Module>of(new ManagementLifecycle(BaseManagementContext.INSTANCE))).build();

注意:使用jclouds-karaf项目的用户将免费获得该文件(根本不需要做任何事情)。

使用ManagementLifecycle插件时,它将创建Apache Jclouds MBean并将其注册到JMX。 如果Hawtio发现了这些mbean ,则会在Hawtio用户界面中添加一个新选项卡:

Jclouds主插件页面

Jclouds主插件页面

EC2 Api详细信息页面

EC2 Api详细信息页面

从那里,用户可以浏览所有已安装的Apache Jclouds提供程序, API和服务。 例如,如果您使用MangementLifecycle模块创建了计算服务上下文,则可以在“ 计算服务 ”标签下看到它:

计算服务列表-Amazon AWS和存根服务。

计算服务列表– Amazon AWS和存根服务。

通过选择一种可用服务,将显示一个详细信息栏,该栏可帮助您导航到所有特定于服务的选项卡。 对于计算服务,其:

  • 节点数

    所有正在运行的节点的详细列表,能够重新引导,销毁,挂起和恢复节点。

    节点数

    节点数

  • 图片

    图像列表,带有操作系统过滤器。

    图片

    图片

  • 地点

    所有可分配位置的列表

    屏幕截图2013年7月5日下午1.09.45

    该插件不是特定于计算服务的。 它还支持Blobstore。 例如,以下是我的一个S3存储桶的视图:

    Blobstore浏览器

    Blobstore浏览器

混合搭配

我真正喜欢Hawtio的地方在于,它具有广泛的开箱即用的插件 ,您可以将它们混搭使用。 这是一个例子:

“几年前,我创建了一个将Jclouds与Apache Camel一起使用的示例,以自动发送有关在云中运行实例的电子邮件通知。”

Hawtio还提供了一个Apache Camel插件,因此我们可以直观地查看,编辑或修改发送通知的示例。 很棒的是,在此示例中,我们使用了Hawtio托管的计算服务:

原始示例可以在使用Apache Camel的Cloud Notification中找到。

轮询EC2以获取正在运行的实例并发送电子邮件通知的路由的直观表示

轮询EC2以获取正在运行的实例并发送电子邮件通知的路由的直观表示

可以与jclouds插件一起使用的另一个很酷的插件是“ Logs插件” ,该日志插件使您可以搜索,浏览和过滤日志,甚至查看与日志条目关联的源:

在日志中搜索与jclouds相关的错误

在日志中搜索与jclouds相关的错误

生成日志条目的代码

生成日志条目的代码

结语

这只是jclouds插件的初稿,还有更多很酷的东西要添加,例如执行脚本,下载blob以及创建新服务的更好方法(已经支持了最后一个,但可以进行改进)。

如果您想了解更多有关Hawtio的信息 ,可以看看James Strachan演示的基于骆驼的iPaas ,它基本上是Hawtio + 保险丝织物 + Apache Camel

参考:来自Ioannis Canellos博客博客的JCG合作伙伴 Ioannis Canellos的Hawtio和Apache JClouds 。

翻译自: https://www.javacodegeeks.com/2013/10/hawtio-apache-jclouds.html

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

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

相关文章

【转】安全加密(一):这些MCU加密方法你都知道吗?

本文导读 随着物联网和边缘计算的出现&#xff0c;五花八门的MCU也被应用其中&#xff0c;如何保证我们的程序安全和知识产权不受侵犯呢&#xff0c;本文我们将对主流MCU的程序加密进行讲解&#xff0c;希望能够帮助你选择最适合自己应用的微处理器。 1. MCU加密 通常所说的MC…

检验杜宾 瓦森检验法R语言_EVIEWS序列相关检验2.pdf

EVIEWS序列相关检验2序列相关检验、处理及案例内蒙古科技大学经济与管理学院边璐 2011.11.10内容安排• 自相关性的检验• 自相关性的解决方法• 案例分析自相关性的检验• 1、图示法(上节课已说过)• 2、DW检验• 3、回归检验法• 4、高阶自相关性检验2、杜宾-瓦森(Durbin-Wat…

连续出现最长次数

输入第一行有一个整数n(n < 1000)&#xff0c;为数组元素的个数。第二行有n个整数&#xff0c;整数之间以一个空格分开。输出输出最长平台的长度。样例输入 10 1 2 2 3 3 3 4 5 5 6 样例输出 3 #include<iostream> using namespace std; int main() {int a[1001],n;ci…

家用计算机机箱怎么选,一般家用电脑主机买什么配置的比较好

组装台式电脑配置最好的方法&#xff1a;实用性机型建议&#xff1a;首选1&#xff1a;intel G1620双核H61M主板。(价格低廉性能不弱&#xff0c;超值)首选2&#xff1a;intel G1840双核H81M主板。(核心显卡性能比G1620更强)中级机型建议&#xff1a;首选1&#xff1a;intel G3…

浅谈Vue内置component组件的应用场景

官方的说明 渲染一个“元组件”为动态组件。依 is 的值&#xff0c;来决定哪个组件被渲染。 <!-- 动态组件由 vm 实例的属性值 componentId 控制 --> <component :is"componentId"></component>具体可以官网文档中的 动态组件内置的组件compone…

angular路由传递参数_在angular4.0路由传递获取参数的最优方案

这次给大家带来在angular4.0路由传递获取参数的最优方案&#xff0c;在angular4.0路由传递获取参数的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。研究ng4的官网&#xff0c;终于找到了我想要的方法。我想要的结果是用‘&拼接参数传送&#xff0…

计算机基础及ms应用在线,全国一级计算机基础及MS Office应用课件 (2).pdf

全国计算机等级考试一级教程计算机基础及MS Office应用考试大纲考试大纲考试大纲考试大纲考试大纲考试大纲考试大纲考试大纲考点1 &#xff1a;计算机组成结构1946年世界上第一台名为ENIAC的电子计算机诞生于美国宾夕法尼亚大学。考点2 &#xff1a;冯诺依曼概念 冯诺依曼理论…

破坏您的JVM

正如我们最近发现的那样&#xff0c;全面测试可能有害。 扩展测试覆盖范围导致我们仅花费一行代码就进行了几个小时的调试会话。 使调试特别令人不愉快的是&#xff0c;该代码不仅崩溃了所部署的JVM&#xff0c;而且还破坏了其下的虚拟机和/或物理机。 因此&#xff0c;请自行…

ulli*3 实现翻书动画效果

按惯例&#xff0c;上GIF&#xff1a;重现&#xff1a;https://codepen.io/anon/pen/JJBxOm 这是我今天参加面试时候&#xff0c;面试官让我做的一道题&#xff0c;面试官坐我旁边看我现场做&#xff0c;然而我比较菜&#xff0c;回来后才做出来…… 来看看HTML部分&#xff1a…

软件结构B/S和C/S

C/S(Client Server)结构的软件&#xff1a; 比如&#xff1a; QQ、 极品飞车、 飞信 、 迅雷 缺点&#xff1a;更新的时候需要用户下载更新包然后再安装&#xff0c;程序员则需要开发客户端与服务端。优点&#xff1a; 减轻服务端的压力&#xff0c;而且可以大量保存数据…

对hash签名失败_vue项目中微信jssdk在ios签名失败

一、问题描述1. vue项目中微信jssdk签名时&#xff0c;在安卓和ios是有差异的&#xff0c;签名时使用的urlwindow.location.href.split(#)[0],此时在安卓没问题&#xff0c;在ios会导致签名失败。因为在安卓中应该拿去签名的URL就是每个页面的URL&#xff0c;在ios中拿去签名的…

cookie,session 会话跟踪技术

会话跟踪技术 1 什么是会话跟踪技术 我们需要先了解一下什么是会话&#xff01;可以把会话理解为客户端与服务器之间的一次会晤&#xff0c;在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话&#xff0c;你就是客户端&#xff0c;而10086服务人员就是服务器了。…

嵌入Maven

这是一个非常罕见的用例&#xff0c;但有时您需要它。 如何在应用程序中嵌入Maven&#xff0c;以便可以以编程方式运行目标&#xff1f; 简短的答案是&#xff1a;这很棘手。 我涉足了我的java webapp自动同步项目的问题 &#xff0c;有时我决定不嵌入它。 最终&#xff0c;我…

200行代码写一个简易的dva

在美团实习的时候&#xff0c;第一次接触到dva这样的react框架&#xff0c;回学校的时候&#xff0c;就想有机会自己实现一下这样的框架&#xff0c;虽然自己水平有限&#xff0c;但是可以试一试哈。 目标是实现dva model的同步和异步 dispatch action。 看看 dva 的构成 let…

linux 切换root_Linux运维服务篇:流量监控工具iftop部署及详细参数分享

Linux流量监控工具--iftop介绍&#xff1a;在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量&#xff0c;监控TCP/IP连接等&#xff0c;则可以使用iftop。一、iftop是什么&#xff1f;iftop是类…

Python特殊函数

exec()&#xff1a;执行动态的字符串代码&#xff0c;和eval类似&#xff0c;不过eval接受表达式。 它可接受&#xff1a;1.代码字符串 2.文件对象 3.代码对象 4.tuple >>> exec(a2) >>> a 2 >>> exec(print(\5\)) 5 eval()&#xff1a;接受一个字…

Java7 –回顾

我开始写博客文章&#xff0c;介绍即将发布的Java8版本中的新增功能 &#xff0c;并认为我将从快速回顾一下Java7带给我们的内容开始。 Java7于2011年7月发布&#xff0c;被描述为“更具进化性而非革命性”。 “有一些重大的改进&#xff0c;但是并没有真正令人惊叹或突破性的…

皖西学院计算机证书,下半年皖西学院计算机等级考试报名时间

根据《皖西学院2017下半年全国计算机等级考试报名通知》得知&#xff0c;2017下半年全国计算机等级考试报名时间7月3日上午09:00分至7月18日17点30分。下面yjbys小编就为大家分享一篇皖西学院计算机等级考试报名具体内容&#xff0c;希望大家认真阅读!一、报名及网上缴费时间&a…

RabbitMQ安装以及集群部署

本次记录安装RabbitMQ的过程&#xff0c;只针对MAC下单机版安装、单机集群安装方法以及配置haproxy负载均衡。 RabbitMQ单机版本安装RabbitMQ单机集群安装方法&#xff08;适合开发练习&#xff09;RabbitMQ配置haproxy负载均衡RabbitMQ集群测试&#xff08;待续&#xff09;参…

前端通过spark-md5.js计算本地文件md5

背景&#xff1a;说到本人第一次使用spark-md5.js还是差不多一年以前的时候了&#xff0c;当时后台老大说要搞一个文件分片上传的功能。我当时就心想&#xff1a;what&#xff1f;啥是文件分片上传&#xff0c;完全没听过好吗&#xff1f;至于我当时内心那个慌就不多描述了&…