消息中間件使用場景

在企業(yè)級應用開發(fā)中涣达,系統(tǒng)間通信是一個很常見的需求。在企業(yè)的實踐中,不同的業(yè)務部門所使用的軟件并不一定是完全統(tǒng)一且相互可通信的帘睦。

在中國袍患,所有的增值稅開票全都要走政府統(tǒng)一規(guī)定的開票機器來開票,然后開票系統(tǒng)與企業(yè)所使用的ERP系統(tǒng)之間的數(shù)據(jù)通信則需要有專門的接口來做數(shù)據(jù)傳輸竣付;在泰國诡延,每個公司可以自己開具自己的發(fā)票,而且沒有統(tǒng)一的格式要求古胆,但是根據(jù)其稅務局的要求肆良,在未來,任何公司的每一筆需要繳納增值稅的開票業(yè)務在開票前都需要先交帶開票的業(yè)務數(shù)據(jù)以XML的格式交給政府逸绎,然后政府統(tǒng)一返回唯一的確認碼惹恃,只有拿到這個碼的發(fā)票才是有效的發(fā)票。當然棺牧,考慮到其中可能帶來的成本巫糙,泰國官方給出了幾種方案:

Host To Host

Host To Host

即企業(yè)直接通過自己的網(wǎng)關將簽名后的XML文件通過SOAP消息格式發(fā)送給政府網(wǎng)關,然后網(wǎng)關返回響應消息颊乘。

Service Provider

Service Provider

即企業(yè)將所有的消息發(fā)送給一個授權(quán)的第三方参淹,由第三方負責與政府網(wǎng)關做通信,然后第三方再將響應消息發(fā)送給企業(yè)的網(wǎng)關乏悄。

以上兩種方式都是直接通信浙值,雖然泰國官方還支持人工地將XML文件通過官方提供的網(wǎng)頁站點上傳到政府網(wǎng)關,然后該站點返回一個響應消息檩小,但是這種模式不再本文討論之列亥鸠,因為其不是自動化的。

乍一看需求很簡單识啦,系統(tǒng)和系統(tǒng)之間利用網(wǎng)絡消息發(fā)送請求和接收響應而已负蚊,但是實際的業(yè)務需求卻是很復雜的。
首先颓哮,對于一個企業(yè)來說其發(fā)票的數(shù)量規(guī)模是很龐大的家妆,特別是對于零售企業(yè),因此為了效率和系統(tǒng)的吞吐量冕茅,并發(fā)地去做消息發(fā)送是必須的伤极。既然有多個消息同時發(fā)送出去,對于某些發(fā)送失敗的消息姨伤,應用層面是需要去做處理的哨坪。但是應用層面有自己的業(yè)務邏輯,比如準備數(shù)據(jù)乍楚,數(shù)據(jù)映射等当编,同時不同的發(fā)票類型對應著不同的原始數(shù)據(jù)和消息格式,此時如果把消息的生成徒溪,發(fā)送忿偷,處理異常金顿,解析響應等模塊也放在應用層面,勢必會給后期的維護帶來巨大的成本鲤桥,因為并發(fā)通信是一個很復雜的問題揍拆。

對于上述問題的一般解決方案是應用層面將原始數(shù)據(jù)和發(fā)票格式的主數(shù)據(jù)發(fā)送給一個消息中間件,由該消息中間件負責完成消息創(chuàng)建茶凳,發(fā)送嫂拴,異常處理,解析等功能贮喧,然后將響應消息再返回給應用顷牌。中間件和應用之間的連接是通過WSDL的規(guī)范來實現(xiàn)的,即WSDL定義好中間件需要的輸入數(shù)據(jù)塞淹,應用層面需要的返回數(shù)據(jù),然后雙方基于這一協(xié)議來進行數(shù)據(jù)交換罪裹。(關于WSDL是什么及其原理可以參考這篇文章)饱普。

上述解決方案的好處是,對于應用來說状共,它只要把某條代開發(fā)票項目的原始數(shù)據(jù)傳給消息中間件套耕,然后等待接收返回的消息即可;如何消息中間件通信出現(xiàn)異常峡继,那么在應用層面會返回一個通信異常的錯誤冯袍,然后應用層面就可以根據(jù)自己的需求來決定是否需要重新給向中間件發(fā)送通信請求。而且碾牌,這個過程是完全可以自動化的康愤。消息中間件可以存在一個類似于輪巡的組件根據(jù)一定的策略去判斷某條消息是否處于失敗狀態(tài),如果是舶吗,則可以進行重試征冷,然后返回正確的響應消息到應用層面;如果某條消息重試多次后仍然失敗誓琼,則可以通過人為干預的方式去監(jiān)控中間件的特定消息检激;同時,通過應用層面的每條代開發(fā)票項可以navigate到中間件相對應的消息項腹侣,因為代開發(fā)票項與中間件某條消息是一一對應的關系叔收。

在SAP系統(tǒng)中,此需求應用層面的產(chǎn)品叫eDocument Framework, 消息中間件產(chǎn)品叫Application Interface Framework(AIF)傲隶,但是AIF并不負責通信消息的生成饺律,真正與外部系統(tǒng)通信的中間件叫SAP PI

因為SAP是靠傳統(tǒng)軟件服務起家跺株,其系統(tǒng)架構(gòu)自身的靈活性使得應用層面并不需要考慮到多線程和高并發(fā)的問題蓝晒,也幾乎不會涉及到分布式數(shù)據(jù)存儲和一個事務需要涉及到跨系統(tǒng)數(shù)據(jù)讀寫的場景腮出,所以SAP提供的消息中間件的解決方案并不會像阿里巴巴的RocketMQ那么全面,但是其產(chǎn)生的根源是一樣的芝薇。在上述介紹的解決方案中胚嘲,如果某個業(yè)務場景需要使用到跨系統(tǒng)的數(shù)據(jù)讀寫時,如何保證跨系統(tǒng)的一致性問題是很難解決的洛二,RocketMQ通過引進“事務型消息中間件”的概念來提供方案馋劈,其具體的原理可以參考這篇文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晾嘶,一起剝皮案震驚了整個濱河市妓雾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌垒迂,老刑警劉巖械姻,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異机断,居然都是意外死亡楷拳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門吏奸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來欢揖,“玉大人,你說我怎么就攤上這事奋蔚∷欤” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵泊碑,是天一觀的道長坤按。 經(jīng)常有香客問我,道長馒过,這世上最難降的妖魔是什么晋涣? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮沉桌,結(jié)果婚禮上谢鹊,老公的妹妹穿的比我還像新娘。我一直安慰自己留凭,他們只是感情好佃扼,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔼夜,像睡著了一般兼耀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天瘤运,我揣著相機與錄音窍霞,去河邊找鬼。 笑死拯坟,一個胖子當著我的面吹牛但金,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播郁季,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼冷溃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了梦裂?” 一聲冷哼從身側(cè)響起似枕,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎年柠,沒想到半個月后凿歼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡冗恨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年答憔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片派近。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖洁桌,靈堂內(nèi)的尸體忽然破棺而出渴丸,到底是詐尸還是另有隱情,我是刑警寧澤另凌,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布谱轨,位于F島的核電站,受9級特大地震影響吠谢,放射性物質(zhì)發(fā)生泄漏土童。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一工坊、第九天 我趴在偏房一處隱蔽的房頂上張望献汗。 院中可真熱鬧,春花似錦王污、人聲如沸罢吃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尿招。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間就谜,已是汗流浹背怪蔑。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丧荐,地道東北人缆瓣。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像篮奄,于是被迫代替她去往敵國和親捆愁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355