關鍵性概念

關鍵性概念

Mule官方原文鏈接

消息(Message)與事件(Event)

Mule的工作方式是通過對源自外部的事件進行響應來觸發(fā)(比如通過接受消息)召廷。遵循了事件驅動構架(EDA- Event Driven Architecture)的概念蒲列。

  • 在最簡單的應用中,Mule應用通過若干個消息處理器來接受事件并將其作為消息進行處理火鼻。

  • 消息處理器被安排在一個或多個流程圖中。

大型消息或者消息流可以通過拆分成記錄通過批處理作業(yè)進行處理棉浸,而不需要使用流程圖

理解基本的流程圖架構是理解Mule的關鍵揖曾。本質上贩毕,每個Mule流程圖包含了一系列的消息處理器消息源來接受和處理消息悯许。外部的客戶端通過各種不同的通訊協(xié)議或方法來觸發(fā)消息源,例如JMS, HTTP, FTP, JDBC, 或文件辉阶。每種消息源會翻譯指定的通訊協(xié)議或方法并將源數(shù)據(jù)封裝為標準的消息格式先壕,然后將消息傳給流程圖中的消息處理器。也可以在流程圖中使用連接器來創(chuàng)建傳出連接谆甜,藉此請求外部的資源垃僚、服務或者其他的Mule應用。

Mule應用通常會包含多個流程圖规辱,通過不同的方式結合在一起來來滿足特定的用戶系統(tǒng)集成需求谆棺。一個流程圖可以通過直接引用調用另一個流程圖,或者通過常用的通訊協(xié)議或方法進行調用罕袋,比如JMS, HTTP, FTP, 或文件改淑。被調用的的流程圖可能在同一個Mule應用中,也可能是在身處網(wǎng)絡任意一角的另一個Mule應用中浴讯。

流程圖(Flow)

一個流程圖即一種結構溅固,在其中你將若干個獨立的處理器連接起來,通過它們對消息來進行接受兰珍、處理以,并最終發(fā)送询吴。你可以將許多個流程圖連接起來組成完整的應用掠河,然后將其部署,可是部署到Mule服務器也可以其他應用服務器猛计,或者部署到云端唠摹。

在最簡單的應用中,流程圖即消息處理器的序列奉瘤。進入流程圖的消息可能會通過各種各樣不同的處理器勾拉。下圖所示的,是Mule首先通過請求-相應模式下的傳入節(jié)點接收消息盗温。然后將消息的內容轉換成新的格式藕赞。接著在一個組件中將消息按照業(yè)務邏輯進行處理之后,將處理后的消息通過消息源作為響應返回卖局。

image

通常在Anypoint Studio圖形界面里斧蜕,消息處理器都會有對應的圖標⊙馀迹可以作為消息源批销,處理器或者組件進行呈現(xiàn)洒闸。同時又作為XML元素,組成了Mule應用的XML文件均芽。在Mule應用XML文件中的流程圖元素下的XML元素通常相應的會在圖形界面的流程圖中的適當位置顯示相應的圖標丘逸。

下面的例子所示的,是在Anypoint Studio的圖形編輯器中的一個簡單的流程圖掀宋。點擊XML Editor標簽可以切換到XML視圖來查看同一個Mule應用的XML內容深纲。

image

消息源(Message Sources)

Mule對消息(也可稱作事件)進行處理,其傳入源頭可能是Mule的外部資源布朦。舉例來說囤萤,消息可能源自下列事件之一:移動設備發(fā)送到請求來消耗資源,數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生變更或者SaaS應用中新創(chuàng)建了一個客戶ID是趴。

大多數(shù)的流程圖中的第一個處理器是用來接收新的消息并將他們放到處理的隊列中涛舍。消息源,如上例所示唆途,是傳入的HTTP節(jié)點富雅。它從一個或多個外部的源頭接收消息,觸發(fā)了流程圖的執(zhí)行肛搬。Mule中的消息源通常是Anypoint連接器没佑,是用來提供與特定外部資源的連接的元素。通常藉由標準協(xié)議(比如HTTP, FTP, SMTP)或者第三方API(Salesforce.com, Twitter, 或者 MongoDB)進行連接温赔。

消息處理器(Message Processors)

Mule的消息處理器通過類別進行分組:

  • 格式轉換器(Transformer)
  • 組件(Component)
  • 過濾器(Filter)
  • 作用域(Scope)
  • 路由(Router)

Mule格式轉換器是節(jié)點間交換數(shù)據(jù)的關鍵蛤奢,通過它們Mule將消息負載轉換成目標應用可以理解的格式。Mule也可對消息進行增強陶贼,使得在數(shù)據(jù)處理過程中可以獲取額外的數(shù)據(jù)并附加到消息之中啤贩。

Mule使用組件來實現(xiàn)特定業(yè)務的后臺處理,例如檢查客戶信息或者數(shù)據(jù)庫中的庫存信息拜秧。組件將消息路由到正確的應用痹屹,例如后臺訂單系統(tǒng)。Mule使用分階段式的事件驅動架構(SEDA : Staged Event-Driven Architecture)進行流程圖的多核異步消息處理枉氮。重點在于志衍,組件本身并不需要含有Mule相關的功能代碼。組件可以是POJO聊替,Spring bean楼肪,Java bean,Groovy腳本惹悄⊙痛牵可以是包含了業(yè)務邏輯的處理數(shù)據(jù)的各種Web服務。甚至可以用其他語言實現(xiàn):Python, JavaScript, Ruby和PHP。Mule的流程圖元素庫支持大部分常見的企業(yè)系統(tǒng)集成模式象缀。

另外流程圖也可以包含過濾器蔬将,作用域以及路由。譬如央星,你可以使用過濾器在應用收到的消息中進行IP地址白名單過濾霞怀。你可以用作用域將若干消息處理器包裹起來,然后將處理的結果緩存起來莉给。你可以根據(jù)消息負載中的內容來將消息分發(fā)往不同的接收者毙石。Mule有一系列的過濾器,作用域以及路由來幫助你自由的定義流程圖來靈活的處理消息颓遏。

在流程圖中布置消息處理器的過程中徐矩,你可以結合Mule表達式(MEL – Mule Expression Language)靈活的從消息及系統(tǒng)運行環(huán)境中提取信息,并根據(jù)這些信息來驅動Mule的處理邏輯叁幢。

Mule表達式(Mule Expression Language)

Mule表達式(MEL)主要用來在Mule中獲取滤灯、操縱及使用取自Mule消息或系統(tǒng)運行環(huán)境中的信息。

在Mule應用運行過程中曼玩,可在以下的場合利用表達式:

  • 取得可用來處理當前消息的信息

  • 設置或操作消息頭或消息負載中的值

  • 對于消息鳞骤、應用、Mule實例或服務器中的信息進行操作

    #[message.inboundProperties.propertyName]

更多關于MEL的內容:

? Mule Expression Language

? Mule Expression Language Basic Syntax

批處理 (Batch Processing)

除了流程圖之外黍判,Anypoint Studio還支持批處理作業(yè)豫尽。批處理作業(yè)的功能是:將消息分割成獨立的更小單位的記錄,對每條記錄進行處理顷帖。在處理后將處理結果生成報告美旧,根據(jù)需要將處理過的內容輸出到其他的系統(tǒng)或隊列中去。批處理作業(yè)適用于流式輸入贬墩,以及“接近實時”的SaaS應用間數(shù)據(jù)集成榴嗅。

批處理作業(yè)是Mule應用中比流程圖更高層級的頂層元素,為Mule消息處理提供記錄級的I/O震糖。批處理將大數(shù)據(jù)消息分割成小單位記錄集來進行異步處理。與流程圖處理消息的機制相類似趴腋,批處理對記錄進行處理吊说。

image

批處理作業(yè)包含了一個或多個批處理步驟,按順序對流過的記錄進行處理优炬。每個步驟中可以包含任意數(shù)量的消息處理器颁井。

批處理作業(yè)可以被流程圖中的批處理執(zhí)行器觸發(fā)或者由批處理作業(yè)中批處理輸入所定義的合規(guī)消息源觸發(fā)。觸發(fā)后蠢护,Mule會創(chuàng)建一個新的批處理作業(yè)實例雅宾。當所有的記錄都通過了全部的批處理步驟后,實例銷毀葵硕∶继В可以按需將包含了記錄處理成敗的處理結果進行匯總贯吓。

更多關于批處理的內容

更多內容

下一步:了解Mule流程圖中的元素

關于批處理作業(yè)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蜀变,隨后出現(xiàn)的幾起案子悄谐,更是在濱河造成了極大的恐慌,老刑警劉巖库北,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爬舰,死亡現(xiàn)場離奇詭異,居然都是意外死亡寒瓦,警方通過查閱死者的電腦和手機情屹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杂腰,“玉大人垃你,你說我怎么就攤上這事【笔” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵官还,是天一觀的道長毒坛。 經(jīng)常有香客問我煎殷,道長,這世上最難降的妖魔是什么豪直? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮末融,結果婚禮上暇韧,老公的妹妹穿的比我還像新娘懈玻。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著眼滤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漾唉。 梳的紋絲不亂的頭發(fā)上堰塌,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音场刑,去河邊找鬼。 笑死铐懊,一個胖子當著我的面吹牛瞎疼,可吹牛的內容都是我干的。 我是一名探鬼主播贼急,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼太抓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了碴倾?” 一聲冷哼從身側響起掉丽,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤机打,失蹤者是張志新(化名)和其女友劉穎残邀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驱闷,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡空另,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年蹋砚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坝咐。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡循榆,死狀恐怖,靈堂內的尸體忽然破棺而出墨坚,到底是詐尸還是另有隱情,我是刑警寧澤泽篮,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布盗尸,位于F島的核電站帽撑,受9級特大地震影響泼各,放射性物質發(fā)生泄漏。R本人自食惡果不足惜油狂,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望专筷。 院中可真熱鬧弱贼,春花似錦、人聲如沸磷蛹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽味咳。三九已至,卻和暖如春槽驶,著一層夾襖步出監(jiān)牢的瞬間责嚷,已是汗流浹背掂铐。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人戚嗅。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像懦胞,于是被迫代替她去往敵國和親医瘫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理旧困,服務發(fā)現(xiàn)醇份,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • 1吼具、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,988評論 3 119
  • 今天閱讀的書?老虎外婆?僚纷,青蛙弗洛格?特別的日子?,?貼近大自然?昆蟲拗盒。 ?老虎外婆?的中國畫風怖竭,朗朗上口的兒歌形...
    Andy媽媽閱讀 170評論 0 0
  • 4月, 隨風飛舞的柳絮陡蝇, 艷壓群芳的玉蘭痊臭, 還有那綿長的海岸線, 這個小城的春天登夫, 如約來到了广匙。 每天早上聽著鳥叫...
    沐洋公子閱讀 230評論 0 2
  • 近年來鸦致,隨著中小學減負工作的推進,不少地區(qū)的小學放學時間提前到了三點半左右涣楷。然而孩子放學早分唾,家長下班晚,請假不現(xiàn)實...
    慧尋親子教育頻道閱讀 199評論 0 0