本文由阿里閑魚技術團隊景松分享,原題“到達率99.9%:閑魚消息在高速上換引擎(集大成)”,有修訂和改動,感謝作者的分享。 1、引言 在2020年年初的時候接手了閑魚的IM即時消息系統,當時的消息存在各種問題,網上的用戶輿情也是接連不斷。 典型的問題,比如: 1)“聊天消息經常丟失 ...
消息的可靠性,即消息的不丟失和不重復,是im系統中的一個難點。當初qq在技術上 當時叫oicq 因為以下兩點原因才打敗了icq: qq的消息投遞可靠 消息不丟失,不重復 qq的垃圾消息少 它antispam做得好,這也是一個難點,但不是本文重點討論的內容 今天,本文將用十分通俗的語言,來講述webim系統中消息可靠性的問題。 一 報文類型im的客戶端與服務器通過發送報文 也就是請求包 來完成消息的 ...
2016-06-21 15:21 0 2799 推薦指數:
本文由阿里閑魚技術團隊景松分享,原題“到達率99.9%:閑魚消息在高速上換引擎(集大成)”,有修訂和改動,感謝作者的分享。 1、引言 在2020年年初的時候接手了閑魚的IM即時消息系統,當時的消息存在各種問題,網上的用戶輿情也是接連不斷。 典型的問題,比如: 1)“聊天消息經常丟失 ...
消息發布者向RabbitMQ進行消息投遞時默認情況下是不返回發布者該條消息在broker中的狀態的,也就是說發布者不知道這條消息是否真的抵達RabbitMQ的broker之上,也因此會發生消息丟失的情況。 對此,RabbitmQ提供了兩種解決方案(以官方提供的SDK為例) 1.通過AMOP提供 ...
要想保證消息的可靠型投遞,無非保證如下3個階段的正常執行即可: 生產者將消息成功投遞到broker broker將投遞過程的消息持久化下來 消費者能從broker消費到消息 發送端消息重試 roducer向broker發送消息后,沒有收到broker的ack時 ...
IM 系統中,保證消息的可靠投遞主要體現在兩方面,一是消息的不丟失,二是消息的不重復。 一、消息不丟失 消息丟失的原因 首先看一下發送消息的流程,如下圖所示: 圖片來源於《即時消息技術剖析與實戰》第 04 講 用戶 A 發出的消息,先到達IM服務端(步驟1),由服務端暫存(步驟 ...
前言 我們知道,消息從發送到簽收的整個過程是 Producer-->Broker/Exchange-->Broker/Queue-->Consumer,因此如果只是要保證消息的可靠投遞,我們需要考慮的僅是前兩個階段,因為消息只要成功到達隊列,就算投遞成功。 比如投遞消息 ...
可靠性投遞: 1、保障消息能夠成功發出 2、保障rabbitmq(broker)能夠成功接收。接收指的是:broker接收到生產者發送的消息,放到exchange中,分發給對應的queue,交付給對應的消費者。 3、發送端要收到broker的確認應答,確認broker已收到|處理消息 ...
mq 提供了兩種方式確認消息的可靠投遞 confirmCallback 確認模式 returnCallback 未投遞到 queue 退回模式 在使用 RabbitMQ 的時候,作為消息發送方希望杜絕任何消息丟失或者投遞失敗場景。RabbitMQ 為我們提供了兩個選項用來 ...
一.消息投遞保證分類 消息的投遞保證主要是三種形式: 1.At most once—Messages may be lost but are never redelivered. 最多一次 --- 消息可能丟失,但絕不會重發。 2.At least once—Messages ...