真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MQ如何解決消息的順序問題和消息的重復(fù)問題

作者:CHEN川

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、松溪網(wǎng)絡(luò)推廣、成都小程序開發(fā)、松溪網(wǎng)絡(luò)營銷、松溪企業(yè)策劃、松溪品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供松溪建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

鏈接:http://www.jianshu.com/p/453c6e7ff81c

來源:簡(jiǎn)書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

一、摘要

分布式消息系統(tǒng)作為實(shí)現(xiàn)分布式系統(tǒng)可擴(kuò)展、可伸縮性的關(guān)鍵組件,需要具有高吞吐量、高可用等特點(diǎn)。而談到消息系統(tǒng)的設(shè)計(jì),就回避不了兩個(gè)問題:

1、消息的順序問題

2、消息的重復(fù)問題

二、關(guān)鍵特性以及其實(shí)現(xiàn)原理

2.1、順序消息

要實(shí)現(xiàn)嚴(yán)格的順序消息,簡(jiǎn)單且可行的辦法就是:

保證生產(chǎn)者 - MQServer - 消費(fèi)者是一對(duì)一對(duì)一的關(guān)系

這樣的設(shè)計(jì)雖然簡(jiǎn)單易行,但也會(huì)存在一些很嚴(yán)重的問題,比如:

1、并行度就會(huì)成為消息系統(tǒng)的瓶頸(吞吐量不夠)

2、更多的異常處理,比如:只要消費(fèi)端出現(xiàn)問題,就會(huì)導(dǎo)致整個(gè)處理流程阻塞,我們不得不花費(fèi)更多的精力來解決阻塞的問題。

但我們的最終目標(biāo)是要集群的高容錯(cuò)性和高吞吐量。這似乎是一對(duì)不可調(diào)和的矛盾,那么阿里是如何解決的?

有些問題,看起來很重要,但實(shí)際上我們可以通過合理的設(shè)計(jì)或者將問題分解來規(guī)避。如果硬要把時(shí)間花在解決問題本身,實(shí)際上不僅效率低下,而且也是一種浪費(fèi)。從這個(gè)角度來看消息的順序問題,我們可以得出兩個(gè)結(jié)論:

1、不關(guān)注亂序的應(yīng)用實(shí)際大量存在

2、隊(duì)列無序并不意味著消息無序

2.2、消息重復(fù)

上面在解決消息順序問題時(shí),引入了一個(gè)新的問題,就是消息重復(fù)。那么MQ是怎樣解決消息重復(fù)的問題呢?還是“恰好”不解決。

造成消息的重復(fù)的根本原因是:網(wǎng)絡(luò)不可達(dá)。只要通過網(wǎng)絡(luò)交換數(shù)據(jù),就無法避免這個(gè)問題。所以解決這個(gè)問題的辦法就是不解決,轉(zhuǎn)而繞過這個(gè)問題。那么問題就變成了:如果消費(fèi)端收到兩條一樣的消息,應(yīng)該怎樣處理?

1、消費(fèi)端處理消息的業(yè)務(wù)邏輯保持冪等性

2、保證每條消息都有唯一編號(hào)且保證消息處理成功與去重表的日志同時(shí)出現(xiàn)

第1條很好理解,只要保持冪等性,不管來多少條重復(fù)消息,最后處理的結(jié)果都一樣。第2條原理就是利用一張日志表來記錄已經(jīng)處理成功的消息的ID,如果新到的消息ID已經(jīng)在日志表中,那么就不再處理這條消息。

我們可以看到第1條的解決方式,很明顯應(yīng)該在消費(fèi)端實(shí)現(xiàn),不屬于消息系統(tǒng)要實(shí)現(xiàn)的功能。第2條可以消息系統(tǒng)實(shí)現(xiàn),也可以業(yè)務(wù)端實(shí)現(xiàn)。正常情況下出現(xiàn)重復(fù)消息的概率不一定大,且由消息系統(tǒng)實(shí)現(xiàn)的話,肯定會(huì)對(duì)消息系統(tǒng)的吞吐量和高可用有影響,所以最好還是由業(yè)務(wù)端自己處理消息重復(fù)的問題,這也是MQ不解決消息重復(fù)的問題的原因。

MQ不保證消息不重復(fù),如果你的業(yè)務(wù)需要保證嚴(yán)格的不重復(fù)消息,需要你自己在業(yè)務(wù)端去重。

三、閱讀原文

【網(wǎng)易云課堂】:點(diǎn)擊在線觀看

【騰訊課堂】:點(diǎn)擊在線觀看

【微信公眾號(hào)】:跟著阿笨一起玩NET




本文名稱:MQ如何解決消息的順序問題和消息的重復(fù)問題
URL網(wǎng)址:http://weahome.cn/article/iedphs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部