免费黄动漫无码在线观看犹物影视|伊人久久综合一本超碰|国产在线精品一区二区三区不卡|国产女主播久久一区二区免费|

ESB服務(wù)總線核心架構(gòu)

SOA團(tuán)隊(duì) 2020-03-16

根據(jù)近期對(duì)開(kāi)源ESB產(chǎn)品的研究,已經(jīng)對(duì)Oracle和Tibco的ESB總線產(chǎn)品的實(shí)施經(jīng)驗(yàn)積累,對(duì)ESB總線的核心產(chǎn)品架構(gòu)有了進(jìn)一步的清晰認(rèn)識(shí),將ESB的核心架構(gòu)整理為上圖,上圖中看到的內(nèi)容也是做為一款完整的ESB服務(wù)總線產(chǎn)品所必須要具備的功能。

首先整個(gè)架構(gòu)體系里面分為三個(gè)組件或子系統(tǒng),即偏開(kāi)發(fā)態(tài)的設(shè)計(jì)器,偏運(yùn)行態(tài)的ESB核心引擎和SOA治理管控平臺(tái)三個(gè)方面的內(nèi)容。以上三者組合和集成形成一款完整的ESB服務(wù)總線產(chǎn)品。對(duì)于三者之間的關(guān)系可以簡(jiǎn)單的描述為:

首先對(duì)于ESB總線引擎是一個(gè)完全相對(duì)獨(dú)立的內(nèi)容,即常說(shuō)的ESB的Server端,一個(gè)完整的ESB引擎一般都會(huì)集成消息中間件的能力。類(lèi)似ServiceMix的ESB可以看到核心是基于OSGI運(yùn)行框架下的ActiveMQ+CXF組件來(lái)實(shí)現(xiàn)基礎(chǔ)核心功能。沒(méi)有設(shè)計(jì)器和管控平臺(tái),引擎也可以獨(dú)立部署和運(yùn)行,即可以自己寫(xiě)代碼或?qū)懪渲梦募?,將開(kāi)發(fā)好的服務(wù)包部署到ESB引擎環(huán)境里面。

一個(gè)ESB引擎本身也需要部署在application server里面,即引擎可以部署在類(lèi)似weblogic,jboss或tomcat等各種中間件容器中。而對(duì)于很多開(kāi)源的ESB可以看到引擎本身已經(jīng)集成了更加輕量的Jetty做為服務(wù)運(yùn)行容器。其次對(duì)于單獨(dú)的引擎應(yīng)該是不需要DB數(shù)據(jù)庫(kù)的,即ESB服務(wù)運(yùn)行的log日志審計(jì)可以存儲(chǔ)在服務(wù)端的log日志文件中,只有當(dāng)安裝了管控平臺(tái)后,我們可以在server上部署代理,準(zhǔn)實(shí)時(shí)的將運(yùn)行日志信息采集和存儲(chǔ)或db數(shù)據(jù)庫(kù)。

其次是ESB設(shè)計(jì)器,設(shè)計(jì)器是屬于開(kāi)發(fā)和設(shè)計(jì)態(tài)的一個(gè)內(nèi)容,重點(diǎn)則是對(duì)http,rest,已經(jīng)服務(wù)+DB,消息等各種內(nèi)容進(jìn)行集成。當(dāng)前類(lèi)似talend和mule等都提供了很強(qiáng)大的服務(wù)設(shè)計(jì)器能力。即我們常說(shuō)的服務(wù)代理,http和soap服務(wù)集成,數(shù)據(jù)庫(kù)適配,路由,消息集成和適配,分支和條件判斷,異常處理,任務(wù)作業(yè),組合服務(wù)等都是設(shè)計(jì)器需要支撐的核心能力。

設(shè)計(jì)器設(shè)計(jì)完成后的內(nèi)容可以導(dǎo)出為部署包,對(duì)于部署包則可以部署到ESB服務(wù)引擎中。當(dāng)前的做法主要有兩種,一種是在設(shè)計(jì)器中本身就提供連接到服務(wù)器進(jìn)行遠(yuǎn)程和自動(dòng)部署的能力,另外一種做法則是在SOA管控平臺(tái)里面提供服務(wù)部署和管控的能力。

設(shè)計(jì)器往往是給服務(wù)開(kāi)發(fā)和設(shè)計(jì)人員使用,目的是為了簡(jiǎn)化服務(wù)的開(kāi)發(fā)和封裝,提升開(kāi)發(fā)效率,一個(gè)開(kāi)放的架構(gòu)模式最好的方式就是脫離了設(shè)計(jì)器仍然可以通過(guò)其他手工方式進(jìn)行服務(wù)的開(kāi)發(fā)和封裝,而不是被設(shè)計(jì)器綁定。而對(duì)于設(shè)計(jì)器本身的輸出,一種是轉(zhuǎn)化為了普通的java代碼,還有一種方式是設(shè)計(jì)器的輸出為xml配置文件??梢钥吹綄?duì)于xml配置文件這種方式更加方便和解耦,在設(shè)計(jì)器產(chǎn)生部署包或測(cè)試運(yùn)行的時(shí)候,設(shè)計(jì)器端首先是讀取xml配置文件的內(nèi)容再動(dòng)態(tài)生成和部署服務(wù)。

最后一個(gè)內(nèi)容是SOA管控平臺(tái),主要的作用是實(shí)現(xiàn)服務(wù)的全生命周期管理,包括服務(wù)的元數(shù)據(jù)管理,服務(wù)目錄庫(kù),服務(wù)的申請(qǐng),服務(wù)的開(kāi)通和鑒權(quán),服務(wù)運(yùn)行日志審計(jì)和監(jiān)控,服務(wù)運(yùn)行分析,服務(wù)預(yù)警,服務(wù)SLA等各種功能。即SOA管控平臺(tái)提升了對(duì)ESB引擎本身的管控和治理能力。

管控平臺(tái)本身也是相對(duì)獨(dú)立的內(nèi)容,可以看到對(duì)于管控平臺(tái)和ESB引擎本身是徹底解耦的,即如果實(shí)施了管控平臺(tái),則只需要在ESB引擎上啟動(dòng)管控代理和相關(guān)的配置參數(shù),在這種模式下ESB引擎本身運(yùn)行態(tài)的運(yùn)行信息即可以準(zhǔn)實(shí)時(shí)的采集到管控平臺(tái)中進(jìn)行存儲(chǔ)和統(tǒng)計(jì)分析。

當(dāng)然,對(duì)于管控平臺(tái)產(chǎn)品的服務(wù)權(quán)限管控,服務(wù)動(dòng)態(tài)路由設(shè)置,服務(wù)流量控制等內(nèi)容,也會(huì)影響到ESB引擎在運(yùn)行態(tài)的運(yùn)行。而通常ESB總線的做法則是對(duì)于log日志,安全,流量控制等都是ESB總線的inbound和outbound上的可插拔式的攔截器,通過(guò)這種組件動(dòng)態(tài)裝載和配置啟用的模式來(lái)徹底實(shí)現(xiàn)管控平臺(tái)和ESB引擎的解耦。

對(duì)于ESB總線產(chǎn)品本身也應(yīng)該是符合SOA架構(gòu)的,即需要實(shí)現(xiàn)組件化和服務(wù)化,實(shí)現(xiàn)服務(wù)組件本身的動(dòng)態(tài)加載和熱部署,當(dāng)前類(lèi)似servicemix在這點(diǎn)上的做法是值得借鑒的,即基于karaf+osgi模式來(lái)實(shí)現(xiàn)一個(gè)組件化的運(yùn)行框架和環(huán)境,極大的方便后了整個(gè)運(yùn)行態(tài)的動(dòng)態(tài)管控能力。

返回上頁(yè)