chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RocketMQ最佳實(shí)踐之坑

jf_ro2CN3Fa ? 來(lái)源:yes的練級(jí)攻略 ? 2023-06-02 14:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前不久踩了個(gè)坑,而這個(gè)坑跟 RocketMQ 推薦的一個(gè)最佳實(shí)踐有關(guān)。

看下我從官網(wǎng)的截圖,官方推薦一個(gè)應(yīng)用盡可能只用一個(gè) topic,然后用 tags 來(lái)標(biāo)識(shí)子類(lèi)型。

9711106c-0103-11ee-90ce-dac502259ad0.png

從訂單角度來(lái)看,可以用一個(gè) Topic-Order,然后再用不同的 tag 來(lái)區(qū)分這是 3C 類(lèi)的訂單,還是母嬰類(lèi)的訂單等,然后下游應(yīng)用根據(jù)不同的需求過(guò)濾不同的 tag。

這樣的實(shí)現(xiàn)方式從業(yè)務(wù)上來(lái)看關(guān)系更清晰(有點(diǎn)樹(shù)狀的感覺(jué)),但是在實(shí)踐上有點(diǎn)問(wèn)題。

問(wèn)題和起因

一般而言,生產(chǎn)上同一個(gè)服務(wù)至少會(huì)部署兩臺(tái)機(jī)器,不僅僅是為了負(fù)載均衡,也是為了系統(tǒng)的可靠性,當(dāng)一臺(tái)機(jī)器意外掛了,另一臺(tái)可以扛起大旗。

我們?cè)诎l(fā)服務(wù)的時(shí)候,都是分批發(fā)布。

這是為了驗(yàn)證新功能的正確性,不讓其一次性影響所有實(shí)例,我們會(huì)先發(fā)布一批,然后觀察下日志,確保無(wú)誤后繼續(xù)發(fā)布后續(xù)幾臺(tái)機(jī)器。

而這個(gè)操作再結(jié)合 RocketMQ 一個(gè) Topic 多 tag 就會(huì)出現(xiàn)訂閱消息不一致的情況,導(dǎo)致丟消息。

原理分析

我們借用官網(wǎng)的圖來(lái)分析一下。

一般我們都用集群模式,以下描述默認(rèn)使用集群模式

從使用層來(lái)看,發(fā)送和消費(fèi)消息給我們最直觀的感受如下:

生產(chǎn)者往一個(gè) Topic 發(fā)送消息,消費(fèi)者訂閱了這個(gè) Topic 就能消費(fèi)到這個(gè)消息。

974595bc-0103-11ee-90ce-dac502259ad0.png

而實(shí)際上在 RocketMQ 中有隊(duì)列的概念:

97759410-0103-11ee-90ce-dac502259ad0.png

也就是生產(chǎn)者往一個(gè) Topic 發(fā)送消息時(shí),消息會(huì)被分到不同的隊(duì)列中。

而屬于同一個(gè)消費(fèi)組的消費(fèi)者們會(huì)平分消費(fèi)這些隊(duì)列,從上圖可以看到 Topic A 分了三個(gè)隊(duì)列,分別是 MessageQueue 0、1、2。

而消費(fèi)組 ConsumerGroupA 中的 Consumer1 僅消費(fèi) MessageQueue0 和 MessageQueue1 這兩個(gè)隊(duì)列中的消息,而 Consumer2 僅消費(fèi) MessageQueue2。

這樣劃分后,Consumer1 是無(wú)法消費(fèi)到 MessageQueue2 中的消息的。

看到可能有人會(huì)說(shuō),這跟 tag 有什么關(guān)系嗎?沒(méi)錯(cuò),問(wèn)題就在這個(gè)分割跟 tag 沒(méi)關(guān)系!

在默認(rèn)情況下生產(chǎn)者發(fā)送消息是以輪詢隊(duì)列的方式發(fā)送的。

比如現(xiàn)在 Producer A 要發(fā)送 TopicA-tag1、TopicA-tag2、TopicA-tag3 這三條數(shù)據(jù),輪詢發(fā)送后,MessageQueue 0、1、2 分別存儲(chǔ)了這 3 條消息。

97a02c48-0103-11ee-90ce-dac502259ad0.png

假設(shè)同樣訂閱了 TopicA,但是 Consumer 1訂閱的 tag 是 tag1和 tag3,而 Consumer 2 訂閱的是 tag1、tag2,那么問(wèn)題就來(lái)了。

97c1257e-0103-11ee-90ce-dac502259ad0.png

按輪詢的順序 Consumer 1 要消費(fèi)的 tag3 被投遞到 MessageQueue2 這個(gè)隊(duì)列中,而 Consumer 1 又無(wú)法消費(fèi) MessageQueue2 中的消息,Consumer 2 能消費(fèi) MessageQueue2 中的消息,但偏偏它又不要 tag3 的消息。這樣一來(lái) tag3 的這條消息就丟了,問(wèn)題就出現(xiàn)了。

所以,在實(shí)踐中,我們要求同一個(gè)消費(fèi)組的消費(fèi)者的訂閱關(guān)系要保持一致。

也就是 Conusmer1 和 Conusmer2 需要訂閱一樣的 Topic、一樣的 tag,這樣消息才不會(huì)丟失。

再回到問(wèn)題

現(xiàn)在我們已經(jīng)知道訂閱關(guān)系一致的重要性,但是有時(shí)候不得已就會(huì)“明知故犯”。

假設(shè)我們訂單服務(wù)線上一共部署了 5 臺(tái),這 5 臺(tái)機(jī)器屬于同一個(gè)消費(fèi)組,因此它們負(fù)載均衡消費(fèi)有關(guān)訂單的消息,如 Topic-Order。

這 5 臺(tái)機(jī)器部署的都是同一套代碼,它們都訂閱了 Topic-Order,且 tag 是 A、B、C 三個(gè)。

這次發(fā)版需要訂單服務(wù)新增消費(fèi) Topic-Order 下的 tag D 消息,由于分批部署,所以先部署了 1 臺(tái)機(jī)器觀察。

而此時(shí)線上就出現(xiàn)了訂閱關(guān)系不一致的情況!5臺(tái)機(jī)器,有 1 臺(tái)訂閱了 Topic-Order tag A、B、C、D,而其他 4 臺(tái)訂閱了 Topic-Order tag A、B、C。

這段時(shí)間內(nèi)就出現(xiàn)了上述所說(shuō)的丟消息的情況,如果有 Topic-Order tagD 的消息產(chǎn)生,那么就有可能會(huì)丟了。

明知有錯(cuò),不想犯,卻犯了!

針對(duì)這個(gè)場(chǎng)景,我暫時(shí)沒(méi)啥思路,不知道業(yè)界是否有什么方式可以優(yōu)雅的處理這個(gè)問(wèn)題?歡迎各位留言指導(dǎo)或探討!

然后留個(gè)坑,如果一臺(tái)機(jī)器訂閱的是 tagA||tagB,而另一臺(tái)訂閱的是 tagB||tagA,這樣算訂閱消息一致嗎?




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    30241

    瀏覽量

    217737
  • 過(guò)濾器
    +關(guān)注

    關(guān)注

    1

    文章

    441

    瀏覽量

    20701

原文標(biāo)題:RocketMQ 最佳實(shí)踐之坑

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    生產(chǎn)環(huán)境中Kubernetes容器安全的最佳實(shí)踐

    隨著容器化技術(shù)的快速發(fā)展,Kubernetes已成為企業(yè)級(jí)容器編排的首選平臺(tái)。然而,在享受Kubernetes帶來(lái)的便利性和可擴(kuò)展性的同時(shí),安全問(wèn)題也日益凸顯。本文將從運(yùn)維工程師的角度,深入探討生產(chǎn)環(huán)境中Kubernetes容器安全的最佳實(shí)踐。
    的頭像 發(fā)表于 07-14 11:09 ?338次閱讀

    Linux網(wǎng)絡(luò)管理的關(guān)鍵技術(shù)和最佳實(shí)踐

    在大型互聯(lián)網(wǎng)企業(yè)中,Linux網(wǎng)絡(luò)管理是運(yùn)維工程師的核心技能之一。面對(duì)海量服務(wù)器、復(fù)雜網(wǎng)絡(luò)拓?fù)?、高并發(fā)流量,運(yùn)維人員需要掌握從基礎(chǔ)網(wǎng)絡(luò)配置到高級(jí)網(wǎng)絡(luò)優(yōu)化的全套技術(shù)棧。本文將結(jié)合大廠實(shí)際場(chǎng)景,深入解析Linux網(wǎng)絡(luò)管理的關(guān)鍵技術(shù)和最佳實(shí)踐。
    的頭像 發(fā)表于 07-09 09:53 ?465次閱讀

    長(zhǎng)安汽車(chē)與深演智能榮獲2025愛(ài)分析DeepSeek最佳實(shí)踐案例

    近日,深演智能與長(zhǎng)安汽車(chē)聯(lián)合打造的 《長(zhǎng)安汽車(chē)基于大模型的線索清洗創(chuàng)新運(yùn)營(yíng)項(xiàng)目》 榮獲 2025愛(ài)分析·DeepSeek最佳實(shí)踐案例獎(jiǎng)項(xiàng)。面對(duì)汽車(chē)市場(chǎng)競(jìng)爭(zhēng)加劇、線索成本攀升的行業(yè)痛點(diǎn),該項(xiàng)目通過(guò)AI技術(shù)重構(gòu)營(yíng)銷(xiāo)全鏈路,為車(chē)企數(shù)智化升級(jí)提供標(biāo)桿范式。
    的頭像 發(fā)表于 06-28 15:59 ?1965次閱讀

    鴻蒙5開(kāi)發(fā)寶藏案例分享---折疊屏開(kāi)發(fā)實(shí)踐

    ?** 最佳實(shí)踐案例大揭秘!開(kāi)發(fā)者的隱藏寶藏手冊(cè)** 大家好呀! 今天在翻鴻蒙文檔時(shí)突然發(fā)現(xiàn)了一個(gè)驚天大寶藏——官方其實(shí)早就默默放出了 幾十個(gè)超實(shí)用開(kāi)發(fā)案例 ,覆蓋折疊屏適配、性能優(yōu)化、UI框架、跨
    發(fā)表于 06-12 11:44

    天馬榮獲新財(cái)富雜志“2024 ESG最佳實(shí)踐獎(jiǎng)”

    天馬可持續(xù)發(fā)展?ESG表現(xiàn)再獲認(rèn)可,上榜2024年新財(cái)富雜志最佳上市公司評(píng)選“ESG最佳實(shí)踐榜單”。
    的頭像 發(fā)表于 05-21 14:43 ?599次閱讀

    BEM+Sass結(jié)合使用的最佳實(shí)踐

    BEM(Block Element Modifier)與Sass的結(jié)合使用是前端開(kāi)發(fā)中一種高效且規(guī)范的樣式編寫(xiě)方式。以下是一些最佳實(shí)踐,旨在幫助開(kāi)發(fā)者更好地利用這兩種工具來(lái)提高代碼的可讀性、可維護(hù)性
    的頭像 發(fā)表于 02-12 16:50 ?850次閱讀

    兆芯最佳實(shí)踐應(yīng)用場(chǎng)景解決方案發(fā)布

    《兆芯最佳實(shí)踐應(yīng)用場(chǎng)景解決方案》現(xiàn)已正式發(fā)布,掃描下方二維碼或點(diǎn)擊閱讀原文即可獲取下載。
    的頭像 發(fā)表于 01-13 14:45 ?757次閱讀

    立訊精密入選2024可持續(xù)發(fā)展最佳實(shí)踐案例

    近日,由中國(guó)上市公司協(xié)會(huì)(以下簡(jiǎn)稱(chēng)中上協(xié))主辦的2024上市公司可持續(xù)發(fā)展大會(huì)在京召開(kāi)。會(huì)上,中上協(xié)發(fā)布了2024上市公司可持續(xù)發(fā)展最佳及優(yōu)秀實(shí)踐案例。立訊精密憑借“立志高遠(yuǎn) 訊航可持續(xù)高質(zhì)量發(fā)展”的卓越實(shí)踐,從596篇投稿中脫
    的頭像 發(fā)表于 11-28 13:50 ?875次閱讀

    4G模組UDP應(yīng)用的最佳實(shí)踐!

    今天說(shuō)的是4G模組UDP應(yīng)用,展示最佳實(shí)踐,送你參考。
    的頭像 發(fā)表于 11-08 09:24 ?1460次閱讀
    4G模組<b class='flag-5'>之</b>UDP應(yīng)用的<b class='flag-5'>最佳</b><b class='flag-5'>實(shí)踐</b>!

    晶科能源入選2024年度Wind中國(guó)上市公司ESG最佳實(shí)踐100強(qiáng)榜單

    日前,知名金融信息服務(wù)商萬(wàn)得(Wind)發(fā)布“2024年度Wind中國(guó)上市公司ESG最佳實(shí)踐100強(qiáng)”榜單。憑借在環(huán)境、社會(huì)和治理方面的卓越表現(xiàn),晶科能源以信息技術(shù)行業(yè)最優(yōu)的AA評(píng)級(jí)強(qiáng)勢(shì)入選,凸顯公司在ESG實(shí)踐中的行業(yè)標(biāo)桿地位
    的頭像 發(fā)表于 11-05 14:02 ?884次閱讀

    活動(dòng)回顧 艾體寶 開(kāi)源軟件供應(yīng)鏈安全的最佳實(shí)踐 線下研討會(huì)圓滿落幕!

    艾體寶與Mend舉辦研討會(huì),聚焦開(kāi)源軟件供應(yīng)鏈安全,邀請(qǐng)行業(yè)專(zhuān)家分享合規(guī)管理、治理之路及最佳實(shí)踐,圓桌討論加深理解,助力企業(yè)更安全穩(wěn)健發(fā)展。
    的頭像 發(fā)表于 10-30 17:52 ?1004次閱讀
    活動(dòng)回顧 艾體寶 開(kāi)源軟件供應(yīng)鏈安全的<b class='flag-5'>最佳</b><b class='flag-5'>實(shí)踐</b> 線下研討會(huì)圓滿落幕!

    MES系統(tǒng)的最佳實(shí)踐案例

    效率、降低成本、保證產(chǎn)品質(zhì)量。 MES系統(tǒng)的最佳實(shí)踐案例 引言 在當(dāng)今競(jìng)爭(zhēng)激烈的制造業(yè)環(huán)境中,企業(yè)必須不斷尋求創(chuàng)新和改進(jìn)的方法來(lái)保持競(jìng)爭(zhēng)力。MES系統(tǒng)作為一種關(guān)鍵的信息技術(shù)工具,已經(jīng)被廣泛應(yīng)用于各種制造行業(yè),以實(shí)現(xiàn)生產(chǎn)過(guò)程的優(yōu)化和管理。本文將探討MES系統(tǒng)的
    的頭像 發(fā)表于 10-27 09:33 ?3331次閱讀

    愛(ài)芯元速榮膺最佳技術(shù)實(shí)踐應(yīng)用獎(jiǎng)

    愛(ài)芯元智車(chē)載事業(yè)部(品牌“愛(ài)芯元速”)憑借在車(chē)載芯片領(lǐng)域的創(chuàng)新技術(shù)研發(fā)實(shí)力以及在推動(dòng)量產(chǎn)上車(chē)方面的卓越成績(jī)收獲本屆“金輯獎(jiǎng)”的“2024最佳技術(shù)實(shí)踐應(yīng)用獎(jiǎng)”。
    的頭像 發(fā)表于 10-25 11:39 ?856次閱讀

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐涉及多個(gè)方面,以下是一些關(guān)鍵要素和最佳實(shí)踐建議: 一、核心組件與架構(gòu)設(shè)計(jì) 邊緣設(shè)備與網(wǎng)關(guān) 邊緣設(shè)備 :包括各種嵌入式設(shè)備、傳感器、智能手機(jī)、智能攝像頭等,負(fù)責(zé)采
    的頭像 發(fā)表于 10-24 14:17 ?1440次閱讀

    云計(jì)算平臺(tái)的最佳實(shí)踐

    云計(jì)算平臺(tái)的最佳實(shí)踐涉及多個(gè)方面,以確保高效、安全、可擴(kuò)展和成本優(yōu)化的云環(huán)境。以下是一些關(guān)鍵的最佳實(shí)踐: 一、云成本優(yōu)化 詳細(xì)分析云使用情況 :通過(guò)細(xì)致的監(jiān)控和分析,識(shí)別低ROI(投資
    的頭像 發(fā)表于 10-24 09:17 ?992次閱讀