成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

你知道消息中間件對(duì)云計(jì)算的重要性嗎?

SKYZACK / 3747人閱讀

摘要:通過消息中間件來通信的話,系統(tǒng)組件間的耦合度就大大降低。所以,消息中間件的最主要的作用是解耦。消息中間件的核心是消息隊(duì)列。是阿里開源的消息中間件,它是純開發(fā),具有高吞吐量高可用性適合大規(guī)模分布式系統(tǒng)應(yīng)用的特點(diǎn)。

云計(jì)算服務(wù)商除了提供云主機(jī)、云存儲(chǔ)、云數(shù)據(jù)庫這些最常用的服務(wù)外,通常也會(huì)提供一些軟件服務(wù),消息中間件就是比較常用的一種基礎(chǔ)軟件。消息中間件對(duì)于分布式系統(tǒng)來說,是一個(gè)非常重要的組成部分,相當(dāng)于系統(tǒng)的基礎(chǔ)設(shè)施,主要解決的是分布式系統(tǒng)不同服務(wù)組件之間的數(shù)據(jù)通信問題。其已成為在業(yè)務(wù)層和IaaS層之間的支撐橋梁,PaaS和中間件及服務(wù)變得越來越受關(guān)注,成為云計(jì)算的關(guān)鍵所在。

消息中間件的作用

一般服務(wù)組件間進(jìn)行通信,都是通過暴露數(shù)據(jù)接口的方式,這種通信方式比較直接,但系統(tǒng)之間的耦合度會(huì)比較高。如果系統(tǒng)的服務(wù)組件很多,互相調(diào)用起來,整個(gè)系統(tǒng)的接口調(diào)用關(guān)系會(huì)很復(fù)雜。通過消息中間件來通信的話,系統(tǒng)組件間的耦合度就大大降低。所以,消息中間件的最主要的作用是解耦。

消息中間件的核心是消息隊(duì)列(MQ: Message Queue)。消息隊(duì)列是大型分布式系統(tǒng)中不可或缺的重要組成部分,主要解決了應(yīng)用解耦,異步處理,流量削峰,消息通訊等問題,支撐實(shí)現(xiàn)分布式系統(tǒng)的高并發(fā),高和最終一致性。

消息中間件的另外一個(gè)好處是提高了分布式系統(tǒng)的可靠性, 服務(wù)組件通過消息中間件給別的組件發(fā)消息,別的組件即時(shí)當(dāng)前沒空處理,等到空閑時(shí)看到這個(gè)消息,就可以處理了。

消息中間件的工作原理

消息中間件主要有兩種工作模式:

(1) ? 一種是生產(chǎn)者/消費(fèi)者(Producer/Consumer)模式;

(2) ?另一種是發(fā)布/訂閱(Pub/Sub)模式。

生產(chǎn)/消費(fèi)模式中有兩種角色,消息生產(chǎn)者(Producer)負(fù)責(zé)生產(chǎn)消息,并把消息發(fā)送到隊(duì)列中,然后消息消費(fèi)者(Consumer)從隊(duì)列中取出并且消費(fèi)消息。生產(chǎn)/消費(fèi)模式是一種一對(duì)一的消息傳遞方式。

消息被消費(fèi)以后,隊(duì)列中就不再存儲(chǔ),所以其他消費(fèi)者不可能消費(fèi)到已經(jīng)被消費(fèi)的消息。 換句話說,存在多個(gè)消費(fèi)者的情況下,對(duì)一個(gè)消息而言,只會(huì)有一個(gè)消費(fèi)者可以消費(fèi)它,所以生產(chǎn)/消費(fèi)模式又稱為點(diǎn)對(duì)點(diǎn)(P2P)模式。

P2P的特點(diǎn):

每個(gè)消息只有一個(gè)消費(fèi)者(Consumer)(即一旦被消費(fèi),消息就不再在消息隊(duì)列中);

生產(chǎn)者和消費(fèi)者之間在時(shí)間上沒有依賴性,也就是說當(dāng)生產(chǎn)者發(fā)送出消息之后,不管消費(fèi)者有沒有正在運(yùn)行它不會(huì)影響到消息被發(fā)送到隊(duì)列;

消費(fèi)者在成功接收消息之后需向隊(duì)列應(yīng)答成功;

如果希望發(fā)送的每個(gè)消息都會(huì)被成功處理的話,那么需要P2P模式;

在發(fā)布/訂閱( Pub/Sub)模式中,包含三個(gè)角色主題(Topic),消息發(fā)布者(Publisher),消息訂閱者(Subscriber) 。消息發(fā)布者(Publisher)將消息發(fā)布到某個(gè)主題(topic),同時(shí)有多個(gè)消息訂閱者(Subscriber)會(huì)接收到該消息。和P2P方式不同,發(fā)布到主題的消息會(huì)被所有該主題的訂閱者接收到,這是一種1對(duì)多的消息傳遞方式。

Pub/Sub的特點(diǎn):

· ? ? ?每個(gè)消息可以有多個(gè)消費(fèi)者

· ? ? ?發(fā)布者和訂閱者之間有時(shí)間上的依賴性。針對(duì)某個(gè)主題(Topic)的訂閱者,它必須創(chuàng)建一個(gè)訂閱者之后,才能消費(fèi)發(fā)布者的消息。

· ? ? ?為了消費(fèi)消息,訂閱者必須保持運(yùn)行的狀態(tài)。

· ? ? ?如果希望發(fā)送的消息可以不被做任何處理、或者只被一個(gè)消息者處理、或者可以被多個(gè)消費(fèi)者處理的話,那么可以采用Pub/Sub模型。

常用的消息中間件

市場(chǎng)上出現(xiàn)過很多商用消息中間件產(chǎn)品,比如Sun的JMS等,還有很多開源消息引擎,比如ActiveMQ、Kafka等。另外像阿里、騰訊這樣的大公司往往會(huì)開發(fā)自己的消息中間件,比如RocketMQ。下面介紹幾種在生產(chǎn)環(huán)境中使用較多的消息隊(duì)列。

(1)ActiveMQ/ApolloMQ

ActiveMQ是Apache出品的最流行的開源消息總線,同時(shí)也是一個(gè)完全支持JMS1.1和J2EE 1.4規(guī)范的JMS Provider實(shí)現(xiàn),使用Java語言編寫。作為老牌消息隊(duì)列,可謂歷史悠久,但歷史包袱也比較多。最新架構(gòu)的產(chǎn)品為ApolloMQ。

(2)Kafka

Kafka是LinkedIn開源的分布式發(fā)布-訂閱消息系統(tǒng),目前歸屬于Apache頂級(jí)項(xiàng)目。Kafka主要特點(diǎn)是基于Pull的模式來處理消息消費(fèi),追求高吞吐量,設(shè)計(jì)目標(biāo)就是用于日志收集和傳輸。

Kafka生態(tài)完善,其代碼是用Scala語言編寫,并且有很多不同編程語言的接口,尤其適合海量消息傳遞。

(3)RabbitMQ

RabbitMQ是一個(gè)在AMQP基礎(chǔ)上完成的,可復(fù)用的企業(yè)消息系統(tǒng)。他遵循Mozilla Public License開源協(xié)議。由Erlang語言編寫。AMQP協(xié)議更多用在企業(yè)系統(tǒng)內(nèi),對(duì)數(shù)據(jù)一致性、穩(wěn)定性和可靠性要求很高的場(chǎng)景,對(duì)性能和吞吐量的要求還在其次。

RabbitMQ比Kafka可靠,kafka更適合IO高吞吐的處理,一般應(yīng)用在大數(shù)據(jù)日志處理或?qū)?shí)時(shí)性(少量延遲),可靠性(少量丟數(shù)據(jù))要求稍低的場(chǎng)景使用,比如ELK日志收集。

(4)RocketMQ

RocketMQ是阿里開源的消息中間件,它是純Java開發(fā),具有高吞吐量、高可用性、適合大規(guī)模分布式系統(tǒng)應(yīng)用的特點(diǎn)。RocketMQ思路起源于Kafka,但并不是Kafka的一個(gè)Copy,它對(duì)消息的可靠傳輸及事務(wù)性做了優(yōu)化,目前在阿里集團(tuán)被廣泛應(yīng)用于交易、充值、流計(jì)算、消息推送、日志流式處理、binglog分發(fā)等場(chǎng)景。

性能與可靠性,魚與熊掌不可兼得,面對(duì)不同的消息中間件產(chǎn)品如何抉擇,要看各自業(yè)務(wù)場(chǎng)景的需求和定位。

小結(jié)

從中間件的常規(guī)定義來看,其可以包括各種軟件方案,API、應(yīng)用服務(wù)器、數(shù)據(jù)整合、對(duì)象請(qǐng)求代理等等,任何位于內(nèi)核和用戶應(yīng)用之間的軟件都可以理解為中間件。中間件如同IT 基礎(chǔ)架構(gòu)的輸水管,使得數(shù)據(jù)能從一個(gè)應(yīng)用流動(dòng)到另一個(gè)中。

當(dāng)中間件走上云端,大家突然發(fā)現(xiàn)可以不再圍繞SOAP/XML來構(gòu)建標(biāo)準(zhǔn)化的方案,微服務(wù)架構(gòu)帶來了新的思路,企業(yè)用戶能夠使用云中間件將業(yè)務(wù)流程逐步遷移到云集成服務(wù)上,最終實(shí)現(xiàn)靈活擴(kuò)展和降本增效,進(jìn)而推動(dòng)了平臺(tái)現(xiàn)代化標(biāo)準(zhǔn)的構(gòu)建。

啟迪云-高級(jí)測(cè)試工程師 黃冬琪

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/5560.html

相關(guān)文章

  • 技術(shù)人攻略訪談二十三:工具理性主義者黃允松

    摘要:導(dǎo)語本期采訪對(duì)象黃允松,青云創(chuàng)始人及。作為一個(gè)純粹的工具理性主義者,黃允松致力于打造優(yōu)良的工具,大幅降低的復(fù)雜性,讓一切變得更加平滑和簡(jiǎn)單,這是他讓世界變得美好起來的方式。 showImg(http://segmentfault.com/img/bVbYfe);文:Gracia 攝影:周振邦(本文為原創(chuàng)內(nèi)容,部分或全文轉(zhuǎn)載均需經(jīng)過作者授權(quán),并保留完整的作者信息和技術(shù)人攻略介紹。) ...

    Andrman 評(píng)論0 收藏0
  • 大型服務(wù)端開發(fā)反模式

    摘要:用線程池執(zhí)行異步任務(wù)為了減少阻塞時(shí)間,加快響應(yīng)速度,把無需返回結(jié)果的操作變成異步任務(wù),用線程池來執(zhí)行,這是提高性能的一種手段。疲于奔命的模式,做不好大型服務(wù)端開發(fā),也難以做好各種領(lǐng)域的開發(fā)。 1. 用線程池執(zhí)行異步任務(wù) 為了減少阻塞時(shí)間,加快響應(yīng)速度,把無需返回結(jié)果的操作變成異步任務(wù),用線程池來執(zhí)行,這是提高性能的一種手段。 你可能要驚訝了,這么做不對(duì)嗎? 首先,我們把異步任務(wù)分...

    oogh 評(píng)論0 收藏0
  • 大型服務(wù)端開發(fā)反模式

    摘要:用線程池執(zhí)行異步任務(wù)為了減少阻塞時(shí)間,加快響應(yīng)速度,把無需返回結(jié)果的操作變成異步任務(wù),用線程池來執(zhí)行,這是提高性能的一種手段。疲于奔命的模式,做不好大型服務(wù)端開發(fā),也難以做好各種領(lǐng)域的開發(fā)。 1. 用線程池執(zhí)行異步任務(wù) 為了減少阻塞時(shí)間,加快響應(yīng)速度,把無需返回結(jié)果的操作變成異步任務(wù),用線程池來執(zhí)行,這是提高性能的一種手段。 你可能要驚訝了,這么做不對(duì)嗎? 首先,我們把異步任務(wù)分...

    wind3110991 評(píng)論0 收藏0
  • 計(jì)算那些事--談一談IAAS

    摘要:對(duì)于商業(yè)市場(chǎng)來說,特別是中國(guó)這樣一個(gè)云計(jì)算才剛剛起步的市場(chǎng)。反觀云計(jì)算售賣的一些商品,目前主要還是以服務(wù)器為主。云計(jì)算的本質(zhì)是將計(jì)算能力轉(zhuǎn)化為標(biāo)準(zhǔn)化,可售賣的服務(wù)。可以說是云計(jì)算實(shí)踐的一個(gè)經(jīng)典案例。有的人會(huì)問,云計(jì)算廠商需要提供哪些服務(wù)。 2015年伊始,國(guó)內(nèi)云計(jì)算市場(chǎng)可謂風(fēng)起云涌。各路群豪紛紛涌入這個(gè)市場(chǎng)。其中最活躍的領(lǐng)域當(dāng)屬IAAS。阿里騰訊硝煙未盡,百度重新檢討了自己的PAAS戰(zhàn)略后,...

    KitorinZero 評(píng)論0 收藏0
  • 計(jì)算運(yùn)維管理問題

    摘要:運(yùn)行監(jiān)控云計(jì)算的運(yùn)維管理應(yīng)從數(shù)據(jù)中心的日常監(jiān)控人手,對(duì)日常維護(hù)管理事件管理變更管理以及應(yīng)急預(yù)案管理等進(jìn)行全方位的日常監(jiān)控,以提前發(fā)現(xiàn)問題并消除隱患。自動(dòng)化管理已然成為了當(dāng)前云計(jì)算運(yùn)維管理的一個(gè)必然發(fā)展趨勢(shì)。從而有效實(shí)現(xiàn)云計(jì)算運(yùn)維管理的改進(jìn)。云計(jì)算在企業(yè)運(yùn)營(yíng)中的基本工作原理是將計(jì)算分布在大量分布式計(jì)算機(jī)中,從而使企業(yè)數(shù)據(jù)中心的運(yùn)行和互聯(lián)網(wǎng)更為相似。通過云計(jì)算的運(yùn)維管理,企業(yè)不僅能夠?qū)崿F(xiàn)對(duì)IT資...

    CoderBear 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<