介绍

我最近花了一些时间为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主插件页面

EC2 Api详细信息页面

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

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

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

  • 节点数

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

    节点数

  • 图片

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

    图片

  • 地点

    所有可分配位置的列表

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

    Blobstore浏览器

混合搭配

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

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

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

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

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

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

在日志中搜索与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

Hawtio和Apache JClouds相关推荐

  1. 开源的云计算开发包:Apache jclouds 1.8.0发布

    Apache jclouds是一个开源的云计算Java开发工具包,能够帮助开发者进行云计算应用开发,并可重用已有的Java和Clojure技能.jclouds提供了云计算环境的可移植抽象层以及云规范特 ...

  2. 云中数据_简化云中的应用程序开发

    云中数据 Everett Toews是Rackspace的一名开发倡导者,他每天在这里工作,以使OpenStack变得更广泛,并使Rackspace Cloud特别易于开发人员和操作员使用. 他是O' ...

  3. topaz全家桶中文_apache 开源项目全家桶 2020年12月中文介绍

    apache项目全家桶 很多apache开源项目特别好,但是没什么能汇总的文档,我来整一个,不定期更新 big-data (50): Project Apache Accumulo star :838 ...

  4. hazelcast 搭建_hazelcast教程 入门

    hazelcast教程-入门 最近一直在研究hazelcast,被hazelcast简单的API操作和丰富的功能所震撼,但是困于中文文档的匮乏,所以想要编写一些关于hazelcast的一些教程文档,想 ...

  5. 收集整理的openstack java封装 api的第三方实现的选择

    Apache jclouds 地址:http://jclouds.apache.org/guides/openstack/ 一个开源库,java实现,支持cloudstack,openstack以及各 ...

  6. 专访 Zipkin 项目 Leader:如何用 Zipkin 做好分布式追踪?

    现代微服务架构由于业务系统模型日趋复杂,分布式系统中需要一套链路追踪系统来帮助我们理解系统行为,明确服务间调用.最近作者请到了 Zipkin 项目的主要开发维护人员 Adrian Cole 来介绍有关 ...

  7. JBoss Wildfly 8.1上的HawtIO

    HawtIO为基于JVM的中间件提供了令人赞叹的视觉效果. 它是应用程序的统一控制台,否则将不得不构建自己的糟糕的Web控制台. 老实说,它们的构建方式各不相同,技术不同,用户体验不同,并且都围绕一种 ...

  8. apache.camel_Apache Camel 2.18发布–包含内容

    apache.camel 本周发布了Apache Camel 2.18.0 . 此版本是重要版本,我将在此博客文章中重点介绍. Java 8 Camel 2.18是第一个需要Java 1.8的版本(例 ...

  9. apache.camel_Apache Camel 2.16发布–十大亮点

    apache.camel Apache Camel 2.16于上周五发布. 这篇博客文章是我尝试在此新版本中进行前10名(加1作为奖励)的亮点. 1.动态到 来自骆驼用户的最常见的常见问题是,如何将消 ...

最新文章

  1. 【pandas学习笔记】Series
  2. 系统架构_Linux内核系统架构介绍
  3. Linux多线程总结
  4. linux内核杂记(6)-进程调度(1)
  5. tablayout支持改变选中文字大小,支持左右滑动,支持viewpager,支持三角可移动指示器...
  6. WPF 基础控件之 DataGrid 样式
  7. 外设驱动库开发笔记32:HLPM025K3 PM2.5传感器驱动
  8. xamarin_如何实现声明性Xamarin表单验证
  9. js中document.documentElement 和document.body 以及其属性 clientWidth等
  10. 系统的本地策略不允许您采用交互式登录
  11. java模拟银行_java模拟银行交易系统程序
  12. Hibernate @Any 及 @ManyToAny 使用教程
  13. kubernetes 1.14安装部署metrics-server插件
  14. ILdasm 的使用
  15. 生僻字用计算机的歌词,生僻字歌词翻译成常用汉字 陈柯宇生僻字歌曲翻译谐音版...
  16. 项目微商城的抽奖活动小结
  17. 前端面试问题答案汇总--基础版
  18. pdf.jsweb浏览pdf插件简单使用
  19. SQL语句中的嵌套子查询
  20. 为什么数据库具有很高的独立性

热门文章

  1. oracle 更新参数,Oracle动态、静态参数参数修改规则
  2. 基于springboot2.5.5自建启动器starter制品库
  3. maven配置junit5_JUnit 5和Selenium –改善项目配置
  4. antlr 4.7.1_新ANTLR 4.6的重要更改
  5. junit5 动态测试_JUnit 5 –动态测试
  6. ruby elixir_如何使用Elixir和Phoenix快速入门构建CRUD REST API
  7. 同步代码和异步代码_告别异步代码
  8. jboss fuse 教程_IDC关于使用JBoss Fuse的商业价值的报告(与Apache Camel一起使用)
  9. java gradle入门_Gradle入门:我们的第一个Java项目
  10. jaxb_JAXB –新手的观点,第1部分