Meet Fabric8:基于Camel和ActiveMQ的开源集成平台

面料8

Fabric8是Red Hat的JBoss Fuse产品的Apache 2.0许可上游社区。

这是一个基于Apache ActiveMQ , Camel , CXF , Karaf , HawtIO等的集成平台。

它提供了自动化的配置和部署管理,以帮助使部署变得容易,可重复且不易发生人为错误。


JBoss Fuse(v6.1 )的最新GA版本最近发布,并且基于Fabric8的v1.0 :
fabric8_logo

Fabric8统一并打包了这些开源项目,以帮助您建立系统之间的集成,并解决非功能性需求,例如管理您的部署,服务发现,故障转移,负载平衡,集中式配置,自动化等等! 它还为在诸如PaaS上的云部署提供了一条清晰的道路 。最好的部分是,已经使用过Camel或ActiveMQ的人们对此很熟悉,它们分别是最受欢迎的开源集成库和消息传递平台。

您可以从社区文档中获取更多信息, 在freenode上的IRC上与开发人员聊天 ,以及在google-groups上的邮件列表 。

太好了,Fabric8给我什么?

Fabric8提供了很多功能……但是,我想在这篇博客文章中提到几个关键功能,如果您直接使用组成项目,那么您必须自己构建这些功能:

* Automated deployment and provisioning
* Polycontainer support
* Centralized management
* Service discovery
* Load balancing
* High availability
* Master/slave failover coordination


织物图

使用Fabric8,您可以构建集成块,对其进行部署和管理(共同创建一个“结构”),其中节点代表具有已配置软件(部署)的容器,并且端点(HTTP,MQ,SOAP / REST)已注册。在存储库中进行动态查找。

DevOpsy的故事

考虑一下您当前的构建和发布过程是什么样的……

对于Java商店,您可能有Maven来构建源代码, Subversion或git来提供围绕源代码的版本控制和更改管理,也许还有Jenkins来管理构建,对吗? 对于Java开发人员来说,这是一套非常强大的工具。

但是,不管它们的功能如何,构建和发布过程都不仅仅是使用一些工具。

将您的代码投入生产需要在操作方面进行很多开发工作,开发人员可能不了解或根本不了解。 您的代码在哪些容器中运行? 什么操作系统? 需要使用哪些支持软件? 这些环境是否经过精心设计和手动配置,且易更改的庞然大物容器因运行的环境(DEV / QA / UAT / PROD等)而异?

成功的IT部门接受DevOps运动及其通信和自动化原理,以创建易于编写脚本/自动执行,可复制并消除尽可能多的人工和手动配置的环境。

开发人员会根据代码和应用服务器进行思考。

操作人员可能会在管理VM,服务器,OS,网络等方面进行思考。

但其中存在差距。 开发人员必须使用哪些工具来自动化部署容器,供应其应用程序,配置这些应用程序以及从中央位置可视化/管理该工具?

运维人员熟悉Puppet / Chef / Ansible / MCollective / capistrano …并将这些工具与Fabric8配合使用将为您提供非常强大的自动化和配置管理堆栈,以帮助您实现一致且可复制的生产部署以实施持续交付模型。

那么,Fabric8增加了什么价值?

容器间的一致性

使用可跨Java容器( Karaf , Tomcat , Wildfly , TomEE ),微服务框架( Dropwizard , Spring Boot , Vert.x )和纯Java Main(PJJM)的Profiles配置部署的一致方式。基于应用程序。

可视化

一个基于HawtIO的统一Web控制台,用于管理您的配置文件,部署,代理,服务等。在出现问题时,Camel路由以及调试和跟踪功能甚至都具有丰富的可视化。

发现

对于Fabric内的所有部署,Fabric8不仅可以管理它们,还可以将它们注册到运行时注册表中,客户端可以使用该注册表自动找到所需的一组HTTP端点(SOAP / REST等)或MQ服务(经纪人,主/从对,经纪人网络等)。 此外,外部客户端还可以使用注册表来发现服务。

对您正在运行的服务的深刻理解

尽管上面提到的熟悉的Ops工具非常适合将软件放入多台机器的磁盘上,但它们不能充分了解正在运行的服务。 例如,使用Fabric8的Camel插件,您可以跟踪已完成的交换次数,失败的次数,端点完成交换所花费的时间等。使用ActiveMQ插件,您可以可视化队列/生产者/消费者,发送消息发送到队列,从DLQ移动消息等。此外,ElasticSearch / Kibana的插件可以更深入地了解您的代码/骆驼路线所实现的业务/集成。

熟识

Fabric8使用Java开发人员编写分布式集成服务或应用程序已经熟悉的工具。 例如,所有配置(配置文件)都存储在git中。 供应机制使用Maven。 协调服务使用[Apache Zookeeper] [zk]等。

管理云中或跨混合云的部署

Fabric8内置了对开箱即用的IaaS或PaaS部署和供应的支持。 甚至还提供了基于Docker的容器的支持,您可以在任何环境中进行运输和使用!

那ServiceMix呢?

ServiceMix还是基于Apache Camel和ActiveMQ的开源ESB。 那么这与Fabric8有什么关系呢?

ServiceMix是当前JBoss Fuse / Fabric8的起源。 它始于9年前,它是基于Java业务集成规范的EnterpriseServiceBus(ESB)的实现。 它的目标是提供一个具有标准化消息传递骨干的可插拔组件体系结构,该体系结构将遵循标准接口和规范的XML数据格式。 尽管JBI是一个过于礼貌的规范(很多XML描述符,打包需求等),但ServiceMix还是广受欢迎。 但是,尽管大多数产品/项目都以大型,复杂的容器形式提供集成服务,但在该复杂的“ ESB”环境之外,仍然需要进行路由,转换,与外部系统集成等工作!

在SMX 3.x和4.x的时间范围内,该项目进行了一些重大的重构。 通过路由/中介DSL剥离并简化了JBI实施,该DSL /后来成为Apache Camel 。 这样,“ ESB”的“心脏”可用于其他项目(ActiveMQ,独立等)。 此外,核心容器也从JBI转向OSGi。 再后来,实际的OSGi容器被重构为自己的项目,现在称为Karaf 。 因此,ServiceMix不再是自己的项目,而是其他项目的打包,例如ActiveMQ,Karaf(以前是SMX的核心)和Camel(曾经是SMX的核心)。 JBoss Fuse的较旧版本(Fuse ESB / Fuse Enterprise)基本上是对SMX的强化,已经对某些Apache项目进行了重新包装。 此外,许多从事SMX工作的核心开发人员也致力于为组成部分做出贡献,而不一定是核心SMX。

Fabric8秉承ServiceMix的“ ESB”或“集成”精神,并添加了一个不错的管理UI( HawtIO )以及我上面提到的所有DevOpsy东西,并为大规模部署乃至向云/混合技术的发展描绘了一条清晰的道路。云体系结构 。

如果您想从社区中获取更多信息, 克劳斯·易卜生 ( Claus Ibsen)撰写了一篇不错的博客文章 。

在SMX社区中进行了相当长时间的讨论 :

下一步

如果您使用Camel , CXF或ActiveMQ开发系统/企业集成并部署到OSGi( karaf ),Servlet( Tomcat ),Java EE( Wilfly )或独立部署 ( Vert.x , Spring Boot , DropWizard ),看一下Fabric8 。

首先下载最新版本,然后给我们您的反馈 !

在后续文章中,我将继续深入介绍Fabric8的功能以及如何使用它来构建健壮的,可伸缩的集成,并为部署集成提供一致且可复制的环境。

翻译自: https://www.javacodegeeks.com/2014/06/meet-fabric8-an-open-source-integration-platform-based-on-camel-and-activemq.html

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

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

相关文章

Django之web框架的本质

web框架的本质及自定义web框架 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求…

Springboot 系列(十三)使用邮件服务

在我们这个时代,邮件服务不管是对于工作上的交流,还是平时的各种邮件通知,都是一个十分重要的存在。Java 从很早时候就可以通过 Java mail 支持邮件服务。Spring 更是对 Java mail 进行了进一步的封装,抽象出了 JavaMailSender. 后…

服务器能否只做c盘系统,我的云服务器只有一个c盘

我的云服务器只有一个c盘 内容精选换一换检查Pkey是否一致。查看弹性云服务器内部分配到的Pkey:cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/* | grep -v "0x0000"检查Pkey是否一致如果环境中查出来的Pkey只有一个,请联系技术支持人员。如…

单例模式(C++实现)

RAII运用 只能在栈上创建对象 只能在堆上创建的对象 单例模式 设计模式 懒汉模式 解决线程安全 优化 饿汉模式 饿汉和懒汉的区别

Flume:使用Apache Flume收集客户产品搜索点击数据

这篇文章涵盖了使用Apache flume收集客户产品搜索点击并使用hadoop和elasticsearch接收器存储信息。 数据可能包含不同的产品搜索事件,例如基于不同方面的过滤,排序信息,分页信息,以及进一步查看的产品以及某些被客户标记为喜欢的…

vue-cli使用swiper4在ie以及safari报错

vue-cli项目中,通过npm run swiper --save-dev安装的是swiper4版本的插件,这样安装以后在谷歌火狐等浏览器都可以正常运行,但是在safari浏览器(可能是版本太低)还有ie(9,10,11)打开会报错&#…

电脑内部,小贴士:电脑内部连接标准

小贴士:电脑内部连接标准在介绍电脑内部连接标准之前,首先应该了解一下电脑内部接线的种类,以便分类处置。电脑内部尽管五颜六色的导线,其中导线的种类可以分为3 类,即电源线、信号线和控制线,而控制线又常…

太快了,太变态了:什么会影响Java中的方法调用性能?

那么这是怎么回事? 让我们从一个简短的故事开始。 几周前,我提议对Java核心libs邮件列表进行更改 ,以覆盖当前final一些方法。 这刺激了一些讨论主题-其中之一是其中一个性能回归通过采取这是一个方法被引入的程度final免遭停止它final 。 我…

1、dubbo的概念

Dubbo是什么? Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000个服务提供3,000,000,000次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用…

轻云服务器的性能,腾讯云轻量应用服务器性能评测(以香港地域为例)

腾讯云轻量应用服务器香港节点24元/月,价格很不错,ForeignServer来说说腾讯云轻量服务器香港地域性能评测,包括腾讯云轻量应用服务器CPU型号配置、网络延迟速度测试:腾讯云香港轻量应用服务器性能评测腾讯云轻量应用服务器地域可选…

vue2.5.2版本 :MAC设置应用在127.0.0.1:80端口访问; 并将127.0.0.1指向www.yours.com ;问题“ Invalid Host header”

0.设置自己的host文件,将127.0.0.1指向自己想要访问的域名 127.0.0.1 www.yours.com 1.MAC设置应用在127.0.0.1:80端口访问: config/index.js目录下修改host和port 然后sudo运行npm run dev:(mac的80端口是被自身分享应用占用的&#xff0c…

Google Android 平台正式开源

Google 推出移动设备软件平台 Android 之时,曾向开发者开放 SDK 包,并许诺将在开源许可模式下开放其全部代码,今天,Google 与其合作伙伴,在 Open Handset Alliance 兑现了其承诺,用户现在可以正式下载 Andr…

JSP彩色验证码

产生验证码图片的文件-----image.jsp <% page contentType"image/jpeg" import"java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %><%!Color getRandColor(int fc,int bc){//给定范围获得随机颜色 Random random new Random()…

自定义Windows右击菜单调用Winform程序

U9_Git中ignore文件处理 背景 U9代码中有许多自动生成的文件&#xff0c;不需要上传Git必须BE Entity中的.target文件 .bak 文件 Enum.cs结尾的文件&#xff0c;还有许多 extand文件。 这些文件都不需要上传Git。 但是这些文件太多了&#xff0c;不可能手动加入到ignore文件中。…

Gradle Introduction

目录 Compileing development ProcessOld compile MothedModern compile MothedWhat is GradleGradle EffectWhat is GroovyGroovy syntax relesStructure ScriptPeojectAttributeTaskExample #1applyExample #1Example #2Dependency ManagementExample #1Example #2Multiple P…

u8系统怎么连接服务器,用友U8 怎么连接远程服务器

用友U8 怎么连接远程服务器 内容精选换一换配置应用系统的跨云热备容灾方案如图1所示。在如图1所示的方案中&#xff0c;用户的生产数据中心的应用系统使用MySQL作为数据库&#xff0c;应用系统与MySQL均热备容灾到华为云上。用户的生产数据中心与华为云之间使用专线进行网络连…

[导入]商业智能2.0?(BI 2.0 from Timo Elliott)

译者注: 关于BI2.0的说法很多&#xff0c;不尽一致&#xff0c;目的只是想多了解一些&#xff1b;译文并不代表译者认可原文观点&#xff0c;只是顺便译了以方便不喜欢E文的朋友。本文是一篇充满探讨及疑问的文章&#xff0c;来自Timo Elliott(Business Objects历史上的第8号员…

angularjs封装bootstrap官网的时间插件datetimepicker

背景:angular与jquery类库的协作 第三方类库中&#xff0c;不得不提的是大名鼎鼎的jquery,现在基本上已经是国内web开发的必修工具了。它灵活的dom操作&#xff0c;让很多web开发人员欲罢不能。再加上已经很成熟的jquery UI 库和大量jquery 插件&#xff0c;几乎是一个取之不尽…

Java中的得墨meter耳定律–最少知识原理–实际示例

得墨meter耳定律&#xff08;也称为最少知识定律&#xff09;是一种编码原理&#xff0c;它表示模块不应该知道其操作的对象的内部细节。 如果代码依赖于特定对象的内部细节&#xff0c;则很有可能一旦该对象的内部发生更改&#xff0c;它就会被破坏。 由于封装是关于隐藏对象的…

课后作业1

自我介绍 我叫张阔&#xff0c;我的爱好是旅行&#xff0c;游览世界的美好风光&#xff1b; 我的码云个人主页是&#xff1a;https://gitee.com/ZkTt0428&#xff1b; 我的第一个项目地址是&#xff1a;https://gitee.com/ZkTt0428/Frist&#xff1b; 目前代码量有10000行了&am…