亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

你知道消息中間件對云計算的重要性嗎?

SKYZACK / 3791人閱讀

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

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

消息中間件的作用

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

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

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

消息中間件的工作原理

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

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

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

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

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

P2P的特點:

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

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

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

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

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

Pub/Sub的特點:

· ? ? ?每個消息可以有多個消費者

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

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

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

常用的消息中間件

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

(1)ActiveMQ/ApolloMQ

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

(2)Kafka

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

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

(3)RabbitMQ

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

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

(4)RocketMQ

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

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

小結(jié)

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

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

啟迪云-高級測試工程師 黃冬琪

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/5560.html

相關(guān)文章

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

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

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

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

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

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

    wind3110991 評論0 收藏0
  • 計算那些事--談一談IAAS

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

    KitorinZero 評論0 收藏0
  • 計算運維管理問題

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

    CoderBear 評論0 收藏0

發(fā)表評論

0條評論

SKYZACK

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<