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…

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

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

ulli*3 实现翻书动画效果

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

cookie,session 会话跟踪技术

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

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是类…

RabbitMQ安装以及集群部署

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

r 保留之前曲线_生存曲线居然能够批量绘制了

生信分析第三步&#xff1a;生存曲线批量绘制各位解螺旋的小伙伴大家好&#xff0c;我是先锋宇&#xff0c;欢迎大家来到每周日的先锋宇专栏&#xff0c;经过前两期推文的学习&#xff0c;很多小伙伴都私信我说从先锋宇助教的专栏很接地气&#xff0c;自己能够开始慢慢处理数据…

基于vue自动化表单实践

背景 B端系统表单较多&#xff0c;且表单可能含有较多字段字段较多的表单带来了大片HTML代码在大片HTML中&#xff0c;混杂着参数绑定、事件处理等逻辑&#xff0c;不利于维护技术栈 Vue&#xff0c;Element(默认表单布局)适合中后台项目快速开发 目标 通过json配置快速生成表单…

天津科技大学计算机学院复试分数线,2021天津科技大学研究生复试分数线

2021天津科技大学研究生复试分数线已经公布&#xff0c;包含学术学位、专业学位、专项计划复试分数线&#xff0c;供大家参考&#xff0c;如意了在此祝广大考研学子都能顺利上岸。一、2021年天津科技大学研究生分数线1&#xff0e;专业分数线各学院严格执行《2021年全国硕士研究…

使用Eclipse Hibernate插件逐步为POJO域Java类和hbm自动生成代码

概述&#xff1a; 在本教程中&#xff0c;我们将使用Eclipse Hibernate工具自动生成域对象和相应的hbm xml文件。 如果您正在处理大型或中型项目&#xff0c;并且开始时有超过5个以上的表&#xff0c;则可能会发现此插件是自动生成映射域对象java文件和相应* .hbm.xml的绝佳工具…

idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全

简介&#xff1a;有哪些常见的线上故障&#xff1f;如何快速定位问题&#xff1f;本文详细总结工作中的经验&#xff0c;从服务器、Java应用、数据库、Redis、网络和业务六个层面分享线上故障排查的思路和技巧。较长&#xff0c;同学们可收藏后再看。前言线上定位问题时&#x…

从零打造在线版H5页面生成器

想必你一定使用过易企秀或其它微场景生成工具制作过炫酷的h5页面&#xff0c;除了感叹其神奇之处有没有想过其实现方式呢&#xff1f;从设计者的角度来看待问题&#xff0c;会有不一样的收获&#xff0c;本文将从零开始&#xff0c;使用node技术来设计实现一款精简版的易企秀 G…

使用Struts2,Hibernate和MySQL BLOB开发个人迷你相册应用程序–第1部分

概述&#xff1a; 在本研讨会中&#xff0c;我们将开发一个Web应用程序&#xff0c;可用于创建漂亮的照片库。 您可以将其托管在Web服务器中&#xff0c;也可以在自己的PC中使用以维护和管理照片集。 使用本教程&#xff0c;您将能够了解与Struts2和Hibernate相关的以下重要内容…

基于 Webpack2、Vue2、iView2 的可视化脚手架 iView Cli 发布 2.0 版本

谷歌今天发布了一系列“性感”的软件&#xff0c;我们也发布了一款大家期待已久的开发者工具&#xff0c;同样很性感 &#xff1a;) iView 2.0 已经发布有两个月了&#xff0c;在 2.0 发布后&#xff0c;npm 下载量、issues 数量都提升了很多&#xff08;可以 watch 下项目&…

在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

请查看我在Karaf的OSGi中构建普通CXF服务&#xff08;不使用Camel&#xff09;的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播&#xff08;并并行化&#xff09;传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终用户。…

cgcs2000大地坐标系地图_为什么要从北京54和西安80统一到CGCS2000?测绘人必知!...

导 读北京54坐标和西安80坐标&#xff0c;使用了很多年&#xff0c;为何要统一成CGCS2000坐标&#xff1f;启用CGCS2000坐标有何重大意义&#xff1f;概述北京54坐标系和西安1980坐标系的建立极大的促进了新中国测绘的发展,然而随着空间大地测量技术的兴起,这两种经典的局部大地…

Amazon Elastic Map Reduce使用Apache Mahout计算建议

Apache Mahout是一个“可扩展的机器学习库”&#xff0c;其中包含各种单节点和分布式推荐算法的实现。 在我的上一篇博客文章中&#xff0c; 我描述了如何在单个节点上实现在线推荐系统来处理数据。 如果数据太大而无法放入内存&#xff08;> 100M首选项数据点&#xff09;怎…

基于element-ui实现table可配置化

写在前面 感谢 饿了么前端团队提供组件化框架elememt-ui&#xff0c;本文基础组件使用element-ui。 大背景 在开发一些系统过程中&#xff0c;使用table作数据展示在所难免。先来看看el-table组件。 非常简单易用的组件&#xff0c;根据提供的data数据&#xff0c;配置table…

麟龙指标通达信指标公式源码_通达信指标公式源码波段极限副图源码

做价值的传播者&#xff0c;一路同行&#xff0c;一起成长问题&#xff1a;怎样才能每天都收到这类文章&#xff01;答案&#xff1a;只需点击上方《通达信公式指标》{买卖公式}AA:(2*CHIGHLOW)/4;BB:AA-REF(C,12);CC:EMA(BB,13);DD:EMA(CC,2);EE:EMA(BB,34);FF:EMA(BB,55);GG:…