Meet Fabric8:基于Camel和ActiveMQ的开源集成平台
面料8
Fabric8是Red Hat的JBoss Fuse產(chǎn)品的Apache 2.0許可上游社區(qū)。
這是一個(gè)基于Apache ActiveMQ , Camel , CXF , Karaf , HawtIO等的集成平臺(tái)。
它提供了自動(dòng)化的配置和部署管理,以幫助使部署變得容易,可重復(fù)且不易發(fā)生人為錯(cuò)誤。
JBoss Fuse(v6.1 )的最新GA版本最近發(fā)布,并且基于Fabric8的v1.0 :
Fabric8統(tǒng)一并打包了這些開(kāi)源項(xiàng)目,以幫助您建立系統(tǒng)之間的集成,并解決非功能性需求,例如管理您的部署,服務(wù)發(fā)現(xiàn),故障轉(zhuǎn)移,負(fù)載平衡,集中式配置,自動(dòng)化等等! 它還為在諸如PaaS上的云部署提供了一條清晰的道路 。最好的部分是,已經(jīng)使用過(guò)Camel或ActiveMQ的人們對(duì)此很熟悉,它們分別是最受歡迎的開(kāi)源集成庫(kù)和消息傳遞平臺(tái)。
您可以從社區(qū)文檔中獲取更多信息, 在freenode上的IRC上與開(kāi)發(fā)人員聊天 ,以及在google-groups上的郵件列表 。
太好了,Fabric8給我什么?
Fabric8提供了很多功能……但是,我想在這篇博客文章中提到幾個(gè)關(guān)鍵功能,如果您直接使用組成項(xiàng)目,那么您必須自己構(gòu)建這些功能:
* Automated deployment and provisioning * Polycontainer support * Centralized management * Service discovery * Load balancing * High availability * Master/slave failover coordination
使用Fabric8,您可以構(gòu)建集成塊,對(duì)其進(jìn)行部署和管理(共同創(chuàng)建一個(gè)“結(jié)構(gòu)”),其中節(jié)點(diǎn)代表具有已配置軟件(部署)的容器,并且端點(diǎn)(HTTP,MQ,SOAP / REST)已注冊(cè)。在存儲(chǔ)庫(kù)中進(jìn)行動(dòng)態(tài)查找。
DevOpsy的故事
考慮一下您當(dāng)前的構(gòu)建和發(fā)布過(guò)程是什么樣的……
對(duì)于Java商店,您可能有Maven來(lái)構(gòu)建源代碼, Subversion或git來(lái)提供圍繞源代碼的版本控制和更改管理,也許還有Jenkins來(lái)管理構(gòu)建,對(duì)嗎? 對(duì)于Java開(kāi)發(fā)人員來(lái)說(shuō),這是一套非常強(qiáng)大的工具。
但是,不管它們的功能如何,構(gòu)建和發(fā)布過(guò)程都不僅僅是使用一些工具。
將您的代碼投入生產(chǎn)需要在操作方面進(jìn)行很多開(kāi)發(fā)工作,開(kāi)發(fā)人員可能不了解或根本不了解。 您的代碼在哪些容器中運(yùn)行? 什么操作系統(tǒng)? 需要使用哪些支持軟件? 這些環(huán)境是否經(jīng)過(guò)精心設(shè)計(jì)和手動(dòng)配置,且易更改的龐然大物容器因運(yùn)行的環(huán)境(DEV / QA / UAT / PROD等)而異?
成功的IT部門(mén)接受DevOps運(yùn)動(dòng)及其通信和自動(dòng)化原理,以創(chuàng)建易于編寫(xiě)腳本/自動(dòng)執(zhí)行,可復(fù)制并消除盡可能多的人工和手動(dòng)配置的環(huán)境。
開(kāi)發(fā)人員會(huì)根據(jù)代碼和應(yīng)用服務(wù)器進(jìn)行思考。
操作人員可能會(huì)在管理VM,服務(wù)器,OS,網(wǎng)絡(luò)等方面進(jìn)行思考。
但其中存在差距。 開(kāi)發(fā)人員必須使用哪些工具來(lái)自動(dòng)化部署容器,供應(yīng)其應(yīng)用程序,配置這些應(yīng)用程序以及從中央位置可視化/管理該工具?
運(yùn)維人員熟悉Puppet / Chef / Ansible / MCollective / capistrano …并將這些工具與Fabric8配合使用將為您提供非常強(qiáng)大的自動(dòng)化和配置管理堆棧,以幫助您實(shí)現(xiàn)一致且可復(fù)制的生產(chǎn)部署以實(shí)施持續(xù)交付模型。
那么,Fabric8增加了什么價(jià)值?
容器間的一致性
使用可跨Java容器( Karaf , Tomcat , Wildfly , TomEE ),微服務(wù)框架( Dropwizard , Spring Boot , Vert.x )和純Java Main(PJJM)的Profiles配置部署的一致方式?;趹?yīng)用程序。
可視化
一個(gè)基于HawtIO的統(tǒng)一Web控制臺(tái),用于管理您的配置文件,部署,代理,服務(wù)等。在出現(xiàn)問(wèn)題時(shí),Camel路由以及調(diào)試和跟蹤功能甚至都具有豐富的可視化。
發(fā)現(xiàn)
對(duì)于Fabric內(nèi)的所有部署,Fabric8不僅可以管理它們,還可以將它們注冊(cè)到運(yùn)行時(shí)注冊(cè)表中,客戶端可以使用該注冊(cè)表自動(dòng)找到所需的一組HTTP端點(diǎn)(SOAP / REST等)或MQ服務(wù)(經(jīng)紀(jì)人,主/從對(duì),經(jīng)紀(jì)人網(wǎng)絡(luò)等)。 此外,外部客戶端還可以使用注冊(cè)表來(lái)發(fā)現(xiàn)服務(wù)。
對(duì)您正在運(yùn)行的服務(wù)的深刻理解
盡管上面提到的熟悉的Ops工具非常適合將軟件放入多臺(tái)機(jī)器的磁盤(pán)上,但它們不能充分了解正在運(yùn)行的服務(wù)。 例如,使用Fabric8的Camel插件,您可以跟蹤已完成的交換次數(shù),失敗的次數(shù),端點(diǎn)完成交換所花費(fèi)的時(shí)間等。使用ActiveMQ插件,您可以可視化隊(duì)列/生產(chǎn)者/消費(fèi)者,發(fā)送消息發(fā)送到隊(duì)列,從DLQ移動(dòng)消息等。此外,ElasticSearch / Kibana的插件可以更深入地了解您的代碼/駱駝路線所實(shí)現(xiàn)的業(yè)務(wù)/集成。
熟識(shí)
Fabric8使用Java開(kāi)發(fā)人員編寫(xiě)分布式集成服務(wù)或應(yīng)用程序已經(jīng)熟悉的工具。 例如,所有配置(配置文件)都存儲(chǔ)在git中。 供應(yīng)機(jī)制使用Maven。 協(xié)調(diào)服務(wù)使用[Apache Zookeeper] [zk]等。
管理云中或跨混合云的部署
Fabric8內(nèi)置了對(duì)開(kāi)箱即用的IaaS或PaaS部署和供應(yīng)的支持。 甚至還提供了基于Docker的容器的支持,您可以在任何環(huán)境中進(jìn)行運(yùn)輸和使用!
那ServiceMix呢?
ServiceMix還是基于Apache Camel和ActiveMQ的開(kāi)源ESB。 那么這與Fabric8有什么關(guān)系呢?
ServiceMix是當(dāng)前JBoss Fuse / Fabric8的起源。 它始于9年前,它是基于Java業(yè)務(wù)集成規(guī)范的EnterpriseServiceBus(ESB)的實(shí)現(xiàn)。 它的目標(biāo)是提供一個(gè)具有標(biāo)準(zhǔn)化消息傳遞骨干的可插拔組件體系結(jié)構(gòu),該體系結(jié)構(gòu)將遵循標(biāo)準(zhǔn)接口和規(guī)范的XML數(shù)據(jù)格式。 盡管JBI是一個(gè)過(guò)于禮貌的規(guī)范(很多XML描述符,打包需求等),但ServiceMix還是廣受歡迎。 但是,盡管大多數(shù)產(chǎn)品/項(xiàng)目都以大型,復(fù)雜的容器形式提供集成服務(wù),但在該復(fù)雜的“ ESB”環(huán)境之外,仍然需要進(jìn)行路由,轉(zhuǎn)換,與外部系統(tǒng)集成等工作!
在SMX 3.x和4.x的時(shí)間范圍內(nèi),該項(xiàng)目進(jìn)行了一些重大的重構(gòu)。 通過(guò)路由/中介DSL剝離并簡(jiǎn)化了JBI實(shí)施,該DSL /后來(lái)成為Apache Camel 。 這樣,“ ESB”的“心臟”可用于其他項(xiàng)目(ActiveMQ,獨(dú)立等)。 此外,核心容器也從JBI轉(zhuǎn)向OSGi。 再后來(lái),實(shí)際的OSGi容器被重構(gòu)為自己的項(xiàng)目,現(xiàn)在稱為Karaf 。 因此,ServiceMix不再是自己的項(xiàng)目,而是其他項(xiàng)目的打包,例如ActiveMQ,Karaf(以前是SMX的核心)和Camel(曾經(jīng)是SMX的核心)。 JBoss Fuse的較舊版本(Fuse ESB / Fuse Enterprise)基本上是對(duì)SMX的強(qiáng)化,已經(jīng)對(duì)某些Apache項(xiàng)目進(jìn)行了重新包裝。 此外,許多從事SMX工作的核心開(kāi)發(fā)人員也致力于為組成部分做出貢獻(xiàn),而不一定是核心SMX。
Fabric8秉承ServiceMix的“ ESB”或“集成”精神,并添加了一個(gè)不錯(cuò)的管理UI( HawtIO )以及我上面提到的所有DevOpsy東西,并為大規(guī)模部署乃至向云/混合技術(shù)的發(fā)展描繪了一條清晰的道路。云體系結(jié)構(gòu) 。
如果您想從社區(qū)中獲取更多信息, 克勞斯·易卜生 ( Claus Ibsen)撰寫(xiě)了一篇不錯(cuò)的博客文章 。
在SMX社區(qū)中進(jìn)行了相當(dāng)長(zhǎng)時(shí)間的討論 :
下一步
如果您使用Camel , CXF或ActiveMQ開(kāi)發(fā)系統(tǒng)/企業(yè)集成并部署到OSGi( karaf ),Servlet( Tomcat ),Java EE( Wilfly )或獨(dú)立部署 ( Vert.x , Spring Boot , DropWizard ),看一下Fabric8 。
首先下載最新版本,然后給我們您的反饋 !
在后續(xù)文章中,我將繼續(xù)深入介紹Fabric8的功能以及如何使用它來(lái)構(gòu)建健壯的,可伸縮的集成,并為部署集成提供一致且可復(fù)制的環(huán)境。
翻譯自: https://www.javacodegeeks.com/2014/06/meet-fabric8-an-open-source-integration-platform-based-on-camel-and-activemq.html
總結(jié)
以上是生活随笔為你收集整理的Meet Fabric8:基于Camel和ActiveMQ的开源集成平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电脑上硬盘型号查看(电脑硬盘型号在哪里查
- 下一篇: Flume:使用Apache Flume