日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

IBM Message Broker筆記系列(二)

 木有銀 2008-09-16
MB概述
MB的全稱是message broker,即“消息代理”。“消息”一詞前幾年比較火,消息中間件也賣的很火,當(dāng)時似乎J2EE的產(chǎn)品都要跟“消息”、“中間件”扯上點關(guān)系,以彰顯潮流。我覺得初學(xué)者只需記住“消息”的異步性即可,也就是“消息”和傳統(tǒng)的網(wǎng)絡(luò)連接、遠程方法調(diào)用等的最大區(qū)別,就是你一旦發(fā)出消息以后,不用再管它的死活,中間件會處理一切事務(wù),出了問題也會通知你,這樣可以更好的分離業(yè)務(wù)邏輯。把消息當(dāng)成郵件的話,那么傳統(tǒng)網(wǎng)絡(luò)連接就是由你去送信,而中間件則好比郵局,它來提供送信服務(wù),并且可以跨國境、跨語言,完全不用你操心(相當(dāng)于中間件可以連接異構(gòu)平臺),使用者只需等在家門口收信。
在說“代理”之前,先講一下MQ的基本概念。MQ即message queue,消息隊列,也就是IBM的主打消息中間件產(chǎn)品,IBM幾乎所有SOA相關(guān)的產(chǎn)品,都是構(gòu)建于MQ之上的,沒有MQ強大的消息傳輸能力,那么IBM很多產(chǎn)品都做不起來。在這里不贅述MQ的功能,初學(xué)者只需把MQ當(dāng)成一個非??煽康膫鬏斖ǖ兰纯?,你只要往里面放東西,MQ就會把消息傳到目的地。
那有了強大的MQ還要“代理”干什么呢?如果你用過MQ,或者類似的產(chǎn)品如apache的開源JMS產(chǎn)品“ActiveMQ”,就會發(fā)現(xiàn),盡管用MQ不必考慮網(wǎng)絡(luò)連接、平臺異構(gòu),但是你在配置的時候、以及使用MQ編程的時候,都要指定目的地,比如設(shè)置IP地址。這樣的程序依舊存在很大耦合性,萬一某個組件的IP變了,所有跟他相關(guān)的組件都得改動,輕則修改配置文件、重則重寫代碼。這時“代理”的作用就開始凸顯了。
所有組件的MQ隊列都可以直接連接到MB上,MB相當(dāng)于一個公共服務(wù)中心。MB接收所有消息,然后自動分析其中的內(nèi)容,找到相應(yīng)的目的地,進行路由轉(zhuǎn)發(fā),好比你在寫信時,只需寫明收信人的姓名、身份證,哪怕收信人搬到天涯海角,只要他在MB郵局中登記了,那MB就可以把信交給他,這樣進一步地分離了業(yè)務(wù)和底層通信,我只需要知道業(yè)務(wù)概念上的“他”,就可以把消息交給他。此外,MB還可以進行消息轉(zhuǎn)換,這就像是自動翻譯信件,我現(xiàn)在可以用中文寫封信給本拉登,我不需要知道他具體藏在哪里,信件就會自動翻譯成阿富汗的文字,送到本拉登手里。
所以,代理的兩個核心功能就是:“消息路由”和“消息格式轉(zhuǎn)換”。MB本質(zhì)上也是一個服務(wù)總線,所有的服務(wù)組件接入到MB中,服務(wù)將消息塞給MB,MB來決定怎么轉(zhuǎn)發(fā),這樣讓服務(wù)愈加成為一個獨立的實體,和其他服務(wù)的耦合性進一步降低,從而達到SOA的境界。
 
MB初覽
說了那么多大道理,終于開始講到MB的具體內(nèi)容了。下面的圖片摘自IBM的紅皮書,是MB的總體架構(gòu),我粗略的描述一下。
MB架構(gòu)
可以看到,MB里面有兩大塊內(nèi)容,一個是toolkit,也就是開發(fā)環(huán)境,后面我們會講到;還有一個是broker domain,即代理域。代理域里面有兩個核心部件,一個是配置管理器configuration manager,一個是代理broker。
配置管理器其實很像MQ的隊列管理器,或者是WAS的deployment manager,都是起到一個管理作用,在MB里當(dāng)然是管理眾多的broker了。我們平時對broker的管理、維護操作,其實都是通過配置管理器完成的。
代理broker是真正體現(xiàn)MB設(shè)計思想的地方,上面的圖片中有像流程圖一樣的東西,即message flow,是消息的流程圖(從什么地方流進來,再從什么地方流出去);還有message set,即消息集,說白了是描述消息長什么樣子,它的結(jié)構(gòu)、內(nèi)容是怎樣的。其實,message flow對應(yīng)了上文所說的“消息路由”,而message set則對應(yīng)“消息格式轉(zhuǎn)換”,你肯定要清楚兩種消息的格式,才能定義互相轉(zhuǎn)換的規(guī)則。
MB的外圍是各種類型的應(yīng)用程序,他們接入MB的方式可以多種多樣,可以是Webservice,也可以是數(shù)據(jù)庫、文件、HTTP連接,等等,不一定局限于MQ
圓柱體代表的則是數(shù)據(jù)庫了,這是盡IT人皆知的。因為MB的很多信息,包括配置信息、以及broker的運行時信息都要通過數(shù)據(jù)庫保存。broker本身也可以操作數(shù)據(jù)庫,你可以在流程的某個節(jié)點上增刪查改某個數(shù)據(jù)庫
 
下圖是WMBT(websphere mb toolkit)的界面
可以看到,WMBT是基于eclipse的,所以大部分java開發(fā)者應(yīng)該能很快上手。開發(fā)MB程序和開發(fā)J2EE程序差不多,也是先新建一個項目,然后編輯,最后部署。
1號區(qū)域是一個消息流,可以看到非常直觀:從MQ讀入——計算(轉(zhuǎn)換成web service格式)——發(fā)送http請求到web service的url——計算(轉(zhuǎn)換回MQ消息格式)——放入MQ
2號區(qū)域是節(jié)點選擇面板,MB自帶了幾十種節(jié)點給我們選擇,同時我們也可以自己創(chuàng)建節(jié)點
3號區(qū)域是屬性面板,當(dāng)你選擇某個節(jié)點時,可以在其中編輯節(jié)點的屬性
4號區(qū)域是域連接面板,開發(fā)好的消息流和消息格式,必須首先在MBT中連接到對應(yīng)的配置管理器,再將打包好的流程部署到對應(yīng)的broker中,這個過程也可以由命令行完成
5號區(qū)域則類似eclipse的項目集合,里面是所有的MB項目
總結(jié)
還是打個比方。首先,我們把MB看做一個功能超級強大的路由器,它支持多種接入方式,也就是MB路由器上的端口有很多種,MQ是比較常用的一種方式,所以MQ就像常用的RJ45接口的5類雙絞線。但同時MB還支持JMS、SCADA等各類接入標(biāo)準(zhǔn)。在MB內(nèi)部,我們管理員定義好路由規(guī)則(編寫消息流)。其次,從MQ過來的信號,可以轉(zhuǎn)換成其他網(wǎng)絡(luò)協(xié)議的信號(消息格式轉(zhuǎn)換),這類似于網(wǎng)橋功能,可以跨越不同網(wǎng)絡(luò)。同時,MB的性能非常好,可以進行大數(shù)據(jù)量交換,這一點又很像是交換機。最后,MB可以理解業(yè)務(wù)邏輯,它的路由不僅像路由器那樣針對消息頭進行路由,還可以根據(jù)消息的業(yè)務(wù)內(nèi)容進行路由,酷似應(yīng)用網(wǎng)關(guān)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多