小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

IBM Message Broker筆記系列(二)

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

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多