1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        使用消息隊(duì)列的10個(gè)理由

        共 1892字,需瀏覽 4分鐘

         ·

        2021-10-02 21:36

        不點(diǎn)藍(lán)字關(guān)注,我們哪來故事?




        正文如下


        過去幾年中,我們一直在使用、構(gòu)建和宣傳消息隊(duì)列,我們認(rèn)為它們是很令人敬畏的,這也不是什么秘密。

        我們相信對(duì)任何架構(gòu)或應(yīng)用來說,消息隊(duì)列都是一個(gè)至關(guān)重要的組件,下面是十個(gè)理由:

        1、解耦

        在項(xiàng)目啟動(dòng)之初來預(yù)測將來項(xiàng)目會(huì)碰到什么需求,是極其困難的。消息隊(duì)列在處理過程中間插入了一個(gè)隱含的、基于數(shù)據(jù)的接口層,兩邊的處理過程都要實(shí)現(xiàn)這一接口。這允許你獨(dú)立的擴(kuò)展或修改兩邊的處理過程,只要確保它們遵守同樣的接口約束。

        2、冗余

        有時(shí)在處理數(shù)據(jù)的時(shí)候處理過程會(huì)失敗。除非數(shù)據(jù)被持久化,否則將永遠(yuǎn)丟失。

        消息隊(duì)列把數(shù)據(jù)進(jìn)行持久化直到它們已經(jīng)被完全處理,通過這一方式規(guī)避了數(shù)據(jù)丟失風(fēng)險(xiǎn)。

        在被許多消息隊(duì)列所采用的"插入-獲取-刪除"范式中,在把一個(gè)消息從隊(duì)列中刪除之前,需要你的處理過程明確的指出該消息已經(jīng)被處理完畢,確保你的數(shù)據(jù)被安全的保存直到你使用完畢。

        3、擴(kuò)展性

        因?yàn)橄㈥?duì)列解耦了你的處理過程,所以增大消息入隊(duì)和處理的頻率是很容易的;只要另外增加處理過程即可。不需要改變代碼、不需要調(diào)節(jié)參數(shù)。擴(kuò)展就像調(diào)大電力按鈕一樣簡單。消息隊(duì)列的面試題和答案我都整理好了,關(guān)注公眾號(hào)Java技術(shù)棧,回復(fù):面試,可以免費(fèi)獲取。

        4、靈活性 & 峰值處理能力

        當(dāng)你的應(yīng)用上了Hacker News的首頁,你將發(fā)現(xiàn)訪問流量攀升到一個(gè)不同尋常的水平。在訪問量劇增的情況下,你的應(yīng)用仍然需要繼續(xù)發(fā)揮作用,但是這樣的突發(fā)流量并不常見;如果為以能處理這類峰值訪問為標(biāo)準(zhǔn)來投入資源隨時(shí)待命無疑是巨大的浪費(fèi)。

        使用消息隊(duì)列能夠使關(guān)鍵組件頂住增長的訪問壓力,而不是因?yàn)槌鲐?fù)荷的請求而完全崩潰。請查看我們關(guān)于峰值處理能力的博客文章了解更多此方面的信息。

        5、可恢復(fù)性

        當(dāng)體系的一部分組件失效,不會(huì)影響到整個(gè)系統(tǒng)。消息隊(duì)列降低了進(jìn)程間的耦合度,所以即使一個(gè)處理消息的進(jìn)程掛掉,加入隊(duì)列中的消息仍然可以在系統(tǒng)恢復(fù)后被處理。而這種允許重試或者延后處理請求的能力通常是造就一個(gè)略感不便的用戶和一個(gè)沮喪透頂?shù)挠脩糁g的區(qū)別。

        6、送達(dá)保證

        消息隊(duì)列提供的冗余機(jī)制保證了消息能被實(shí)際的處理,只要一個(gè)進(jìn)程讀取了該隊(duì)列即可。

        在此基礎(chǔ)上,IronMQ提供了一個(gè)"只送達(dá)一次"保證。無論有多少進(jìn)程在從隊(duì)列中領(lǐng)取數(shù)據(jù),每一個(gè)消息只能被處理一次。這之所以成為可能,是因?yàn)楂@取一個(gè)消息只是"預(yù)定"了這個(gè)消息,暫時(shí)把它移出了隊(duì)列。除非客戶端明確的表示已經(jīng)處理完了這個(gè)消息,否則這個(gè)消息會(huì)被放回隊(duì)列中去,在一段可配置的時(shí)間之后可再次被處理。

        7、排序保證

        在許多情況下,數(shù)據(jù)處理的順序都很重要。消息隊(duì)列本來就是排序的,并且能保證數(shù)據(jù)會(huì)按照特定的順序來處理。IronMO保證消息漿糊通過FIFO(先進(jìn)先出)的順序來處理,因此消息在隊(duì)列中的位置就是從隊(duì)列中檢索他們的位置。

        8、緩沖

        在任何重要的系統(tǒng)中,都會(huì)有需要不同的處理時(shí)間的元素。例如,加載一張圖片比應(yīng)用過濾器花費(fèi)更少的時(shí)間。

        消息隊(duì)列通過一個(gè)緩沖層來幫助任務(wù)最高效率的執(zhí)行--寫入隊(duì)列的處理會(huì)盡可能的快速,而不受從隊(duì)列讀的預(yù)備處理的約束。該緩沖有助于控制和優(yōu)化數(shù)據(jù)流經(jīng)過系統(tǒng)的速度。

        9、理解數(shù)據(jù)流

        在一個(gè)分布式系統(tǒng)里,要得到一個(gè)關(guān)于用戶操作會(huì)用多長時(shí)間及其原因的總體印象,是個(gè)巨大的挑戰(zhàn)。

        消息系列通過消息被處理的頻率,來方便的輔助確定那些表現(xiàn)不佳的處理過程或領(lǐng)域,這些地方的數(shù)據(jù)流都不夠優(yōu)化。

        10、異步通信

        很多時(shí)候,你不想也不需要立即處理消息。消息隊(duì)列提供了異步處理機(jī)制,允許你把一個(gè)消息放入隊(duì)列,但并不立即處理它。你想向隊(duì)列中放入多少消息就放多少,然后在你樂意的時(shí)候再去處理它們。

        我們相信上述十個(gè)原因,使得消息隊(duì)列成為在進(jìn)程或應(yīng)用之間進(jìn)行通信的最好形式。


        往期推薦

        程序員排位賽中的 14 個(gè)等級(jí)

        程序員被公司辭退都12天了,前領(lǐng)導(dǎo)要求回公司講清楚代碼

        被迫降級(jí)降薪,說好的共同富裕呢?

        以為工作了十年,其實(shí)卻只有一年的工作經(jīng)驗(yàn),只不過又重復(fù)用了九年

        Visual Studio 上架微軟商店了,你怎么看?


        END



        若覺得文章對(duì)你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動(dòng)力。


        長按二維碼,掃掃關(guān)注哦

        ?「C語言中文網(wǎng)」官方公眾號(hào),關(guān)注手機(jī)閱讀教程??


        學(xué)習(xí)資料包括:?Java,算法,數(shù)據(jù)庫,Linux,簡歷,運(yùn)維?等編程分類,在不斷更新中哦


        點(diǎn)擊“閱讀原文”,馬上免費(fèi)領(lǐng)??!
        ??????


        瀏覽 27
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            gay性瘾小狼和健身教练 岳乱妇乱第1集 | 免费观看黄色 | 东京热二区 | 性欧美狂欢俱乐部xxxxx | 一级黄色片看看 | 色情肏逼视频 | 奇米影视一区二区三区 | 日韩A片一级无码免费 蜜桃 | 日逼影视| 国精产品乱码一区一区三区四区 |