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

分享

MQ消息中間件介紹

 BIGDATA云 2018-08-07

首先MQ是什么?

MQ是Message Queue消息隊(duì)列的縮寫(xiě)。消息隊(duì)列是一種應(yīng)用程序?qū)?yīng)用程序的通信方法、應(yīng)用程序通過(guò)寫(xiě)和檢索入列隊(duì)的針對(duì)應(yīng)用程序的數(shù)據(jù)(消息)來(lái)進(jìn)行通信,而不需要專(zhuān)用連接來(lái)鏈接它們。消息傳遞指的是程序之間通過(guò)在消息中發(fā)送數(shù)據(jù)進(jìn)行通信,而不是通過(guò)直接調(diào)用彼此來(lái)通信,直接調(diào)用通常是用于諸如遠(yuǎn)程過(guò)程調(diào)用的技術(shù)。排隊(duì)指的是應(yīng)用程序通過(guò)隊(duì)列來(lái)通信,隊(duì)列的使用除去了接收和發(fā)送應(yīng)用程序同時(shí)執(zhí)行的要求。

消息中間件的概況?

消息隊(duì)列技術(shù)是分布式應(yīng)用間交換信息的一種技術(shù),消息隊(duì)列可駐留在內(nèi)存或者磁盤(pán)上,隊(duì)列存儲(chǔ)消息直到它們被應(yīng)用程序讀走,通過(guò)消息隊(duì)列,應(yīng)用程序可獨(dú)立的執(zhí)行---它們不需要知道彼此的位置?;蛘呃^續(xù)執(zhí)行前不需要等待接收程序接收此消息。


MQ相關(guān)的概念:

(1)消息Message

消息是MQ中最小的概念,本質(zhì)上是一段數(shù)據(jù),它能被一個(gè)或者多個(gè)應(yīng)用程序所理解。是應(yīng)用程序之間傳遞的信息載體、

(2)隊(duì)列Queue

a、本地隊(duì)列

本地隊(duì)列按照功能能劃分為初始化隊(duì)列,傳輸隊(duì)列、目標(biāo)隊(duì)列、死信隊(duì)列

    初始化隊(duì)列:用作消息觸發(fā)功能。

    傳輸隊(duì)列:只是暫存待傳的消息,條件許可的情況下,通過(guò)管道將消息傳送到其他的隊(duì)列管理器。

   目標(biāo)隊(duì)列:是消息的目的地,可以長(zhǎng)期存放消息。

    死信隊(duì)列:當(dāng)消息不能送到目標(biāo)隊(duì)列,也不再路由出去。則自動(dòng)放入死信隊(duì)列保存。

b、別名隊(duì)列和遠(yuǎn)程隊(duì)列

只是一個(gè)隊(duì)列的定義,用來(lái)指定遠(yuǎn)程隊(duì)列管理器的隊(duì)列、使用了遠(yuǎn)程隊(duì)列,程序就不需要知道目標(biāo)隊(duì)列的位置、

c、模型隊(duì)列

模型隊(duì)列定義了一套本地隊(duì)列的屬性結(jié)合。一旦打開(kāi)模型隊(duì)列,隊(duì)列管理器會(huì)按照這些屬性動(dòng)態(tài)的創(chuàng)建出一個(gè)本地隊(duì)列。

(3)隊(duì)列管理器(Queue Manager)

隊(duì)列管理器時(shí)一個(gè)負(fù)責(zé)向應(yīng)用程序提供消息服務(wù)的機(jī)構(gòu),如果把隊(duì)列管理器比作數(shù)據(jù)庫(kù),那么隊(duì)列就是其中的一張表、

(4)通道(Channel)

通道是兩個(gè)管理器之間的一種單向點(diǎn)對(duì)點(diǎn)的通信連接,若需要雙向交流,可以建立一對(duì)通道。

(5)監(jiān)聽(tīng)器(listener

MQ產(chǎn)品特性

可靠性傳輸:這個(gè)特點(diǎn)是消息中間件的立足之本,對(duì)應(yīng)用來(lái)說(shuō),只要成功把數(shù)據(jù)提交個(gè)消息中間件,那么關(guān)于數(shù)據(jù)可靠傳輸?shù)膯?wèn)題就由消息中間件來(lái)負(fù)責(zé)。

不重復(fù)傳輸 :不重復(fù)傳輸也就是斷點(diǎn)續(xù)傳的功能,特別適合在網(wǎng)絡(luò)不穩(wěn)定的環(huán)境,節(jié)約網(wǎng)絡(luò)資源。

異步傳輸:接受信息雙方不必同時(shí)在線(xiàn),具有脫機(jī)能力和安全性。

消息驅(qū)動(dòng):接到消息后主動(dòng)通知消息接收方

支持事務(wù):應(yīng)用程序可以把一些數(shù)據(jù)更新組合成一個(gè)工作單元,這些更新通常是邏輯相關(guān)的,為了保障數(shù)據(jù)完整性,所有的更新必須同時(shí)成功或者同時(shí)失敗。


MQ應(yīng)用場(chǎng)景:

MQ消息隊(duì)列是應(yīng)用松耦合的概念而產(chǎn)生的,主要以隊(duì)列和發(fā)布訂閱為消息傳輸機(jī)制,以異步的方式將消息可靠的傳輸?shù)较⒍?。它被廣泛的應(yīng)用與跨平臺(tái),跨系統(tǒng)的分布式系統(tǒng)之間,為它們提供高效可靠的異步傳輸機(jī)制。

先了解一下發(fā)布-訂閱消息模式

   有些網(wǎng)站在注冊(cè)用戶(hù)成功后發(fā)一封激活郵件,用戶(hù)收到郵件后點(diǎn)擊激活鏈接后才能使用該網(wǎng)站。一般的做法是在注冊(cè)用戶(hù)業(yè)務(wù)邏輯中調(diào)用發(fā)送郵件的邏輯。這 樣用戶(hù)業(yè)務(wù)就依賴(lài)于郵件業(yè)務(wù)。如果以后改為短信激活,注冊(cè)用戶(hù)業(yè)務(wù)邏輯就必須修改為調(diào)用發(fā)送短信的邏輯。如果要注冊(cè)后給用戶(hù)加點(diǎn)積分,再加一段邏輯。經(jīng)過(guò) 多次修改,我們發(fā)現(xiàn)很簡(jiǎn)單的注冊(cè)用戶(hù)業(yè)務(wù)已經(jīng)越來(lái)越復(fù)雜,越來(lái)越難以維護(hù)。相信很多開(kāi)發(fā)者都會(huì)有類(lèi)似痛苦的經(jīng)歷。


即使用戶(hù)業(yè)務(wù)實(shí)現(xiàn)中對(duì)其他業(yè)務(wù)是接口依賴(lài),也避免不了業(yè)務(wù)變化帶來(lái)的依賴(lài)影響。怎么辦?解耦!將注冊(cè)用戶(hù)業(yè)務(wù)邏輯中注冊(cè)成功后的處理剝離出來(lái)。
       再回頭看看"訂閱雜志",如果沒(méi)有郵局,出版社就必須自己將雜志送達(dá)所有消費(fèi)者。這種情形就和現(xiàn)在的注冊(cè)用戶(hù)業(yè)務(wù)一樣。我們發(fā)現(xiàn)問(wèn)題了,在用戶(hù)業(yè)務(wù)和其他業(yè)務(wù)之間缺少了郵局所扮角色。
       我們把郵局抽象成一個(gè)管理消息的地方,叫"消息管理器"。注冊(cè)用戶(hù)成功后發(fā)送一個(gè)消息給消息管理器,由消息管理器轉(zhuǎn)發(fā)該消息給需要處理的業(yè)務(wù)?,F(xiàn)在,用戶(hù)業(yè)務(wù)只依賴(lài)于消息管理器了,它再也不會(huì)為了注冊(cè)用戶(hù)成功后的其他處理而煩惱。




注冊(cè)用戶(hù)的改造就是借鑒了"訂閱雜志"這樣原始的模式。我們?cè)龠M(jìn)一步抽象,用戶(hù)業(yè)務(wù)就是消息的"生產(chǎn)者",它將消息發(fā)布到消息管理器。郵件業(yè)務(wù)就是 消息的"消費(fèi)者",它將收到的消息進(jìn)行處理。郵局可以訂閱很多種雜志,雜志都是通過(guò)某種編號(hào)來(lái)區(qū)分;消息管理器也可以管理多種消息,每種消息都會(huì)有一個(gè) "主題"來(lái)區(qū)分,消費(fèi)者都是通過(guò)主題來(lái)訂閱的。



消息通道(MessageChannel)使用MQ將彼此協(xié)作的客戶(hù)端和服務(wù)端連接起來(lái),使它們可以交換消息。


若客戶(hù)端和服務(wù)端需要安全可靠的交互,可以將一個(gè)MQ隊(duì)列作為安全通道,是客戶(hù)端與服務(wù)端能夠安全高效的進(jìn)行

異步通訊。

消息總線(xiàn)(Message Bus)

對(duì)于許多獨(dú)立開(kāi)發(fā)的服務(wù)組成的分布式系統(tǒng),若要將他們組成一個(gè)完整的系統(tǒng),這些服務(wù)必須能夠可靠的交互,同時(shí),為了系統(tǒng)的健壯性,每個(gè)服務(wù)之間又不能過(guò)分緊密的依賴(lài),這樣就可以通過(guò)消息總線(xiàn)將不同的服務(wù)連接起來(lái),允許它們異步的傳遞數(shù)據(jù)。



消息路由:通過(guò)消息路由,可以將發(fā)送到MQ指定隊(duì)列的消息根據(jù)規(guī)則路由到不同的隊(duì)列。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(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)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多