您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 買粉絲買粉絲無限回調系統(面試官杠上重復消費、消息堆積、消息丟失、順序消息?)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-17 13:38:12【】3人已围观

简介部署一個消費者實例,然后設置MQ每次只推送一個消息,再開啟手動ack即可。這樣MQ每次只會從隊列推送一個消息過來,處理完成之后我們ack回應,再消費下一個,就能確保消息順序性。這樣MQ每次只會從隊列推

部署一個消費者實例,然后設置MQ 每次只推送一個消息,再開啟手動 ack 即可。這樣MQ 每次只會從隊列推送一個消息過來,處理完成之后我們 ack 回應,再消費下一個,就能確保消息順序性。

這樣MQ 每次只會從隊列推送一個消息過來,處理完成之后我們 ack 回應,再消費下一個,就能確保消息順序性。

但是這樣的操作也會降低消費者的性能, 一個消費者消費消息時,其他消費者會阻塞,所以很多場景下可能并不會采用這樣的方案。

所以一般會根據場景,制定一定的策略來解決消費順序問題。

多線程并發搶占出現消費亂序問題

當MQ采用簡單隊列模式的時候,如果消費者采用多線程的方式來加速消息的處理,此時也會出現消息亂序的問題。

多線程并發搶占出現消費亂序問題,將消息ID進行hash計算,將相同值放入同一個內存隊列,讓指定線程執行,即可解決順序消費問題。

在多個分區中保證消息順序和消息處理效率

首先使用多個分區,消息可以被發送端發送至多個分區,保證消息發送的效率。然后在消費端在拉消息時使用ConutdownLunch來記錄一組有序消息的個數。如果達到個數,說明已拉取到完整的一組有序消息。然后在消費端根據消息序號進行排序,消費端將排好序的消息發到內存隊列(可以搞多個),一個內存隊列開啟一個線程順序處理消息。即可最大程度上既保證順序又保證效率!

RocketMQ作為阿里開源的一款高性能、高吞吐量的消息中間件,支持順序消息,所以如果有這種場景或者要使用MQ,我建議你直接使用RocketMQ即可。

我們說了一些處理與分析問題的方法,這里有一個最重要的點就是我們需要有一套實用的監控發現工具或者方式,在問題第一時間發現才是王道,不然我們上面所說的都空談,當問題發現的時候損失已經無法挽回。所以我們要在設計系統之初需要要為監控系統或者程序提供完備或者必須的日志,接口,數據等,這要才是一個合理的設計。當沒有監控系統的情況下我們必須自己設計一套簡單分析接口。

最后, 如果我的文章對你有所幫助或者有所啟發, 歡迎關注買粉絲(買粉絲搜索買粉絲:首席架構師專欄),里面有許多技術干貨,也有我對技術的思考和感悟,還有作為架構師的驗驗分享;關注后回復 【面試題】,有我準備的面試題、架構師大型項目實戰視頻等福利 , 我會帶著你一起學習、成長,讓我們一起加油!!!

很赞哦!(1)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:山东淄博桓台县

工作室:小组

Email:[email protected]