精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

使用MQ消息隊(duì)列時(shí)需要考慮的問(wèn)題

我快閉嘴 ? 來(lái)源:稀土掘金技術(shù)社區(qū) ? 作者:稀土掘金技術(shù)社區(qū) ? 2022-09-13 16:37 ? 次閱讀


引入 MQ 消息中間件最直接的目的:系統(tǒng)解耦以及流量控制(削峰填谷)

  • 系統(tǒng)解耦: 上下游系統(tǒng)之間的通信相互依賴,利用 MQ 消息隊(duì)列可以隔離上下游環(huán)境變化帶來(lái)的不穩(wěn)定因素。
  • 流量控制: 超高并發(fā)場(chǎng)景中,引入 MQ 可以實(shí)現(xiàn)流量 “削峰填谷” 的作用以及服務(wù)異步處理,不至于打崩服務(wù)。

引入 MQ 同樣帶來(lái)其他問(wèn)題:數(shù)據(jù)一致性。

在分布式系統(tǒng)中,如果兩個(gè)節(jié)點(diǎn)之間存在數(shù)據(jù)同步,就會(huì)帶來(lái)數(shù)據(jù)一致性的問(wèn)題。消息生產(chǎn)端發(fā)送消息到 MQ 再到消息消費(fèi)端需要保證消息不丟失。

1bed7338-3248-11ed-ba43-dac502259ad0.jpg

所以在使用 MQ 消息隊(duì)列時(shí),需要考慮這 3 個(gè)問(wèn)題:

  • 如何知道有消息丟失?

  • 哪些環(huán)節(jié)可能丟消息?

  • 如何確保消息不丟失?

    1c0240d8-3248-11ed-ba43-dac502259ad0.jpg

1、如何知道有消息丟失?

如何感知消息是否丟失了?可總結(jié)如下:

  1. 他人反饋: 運(yùn)營(yíng)、PM 反饋消息丟失。
  2. 監(jiān)控報(bào)警: 監(jiān)控指定指標(biāo),即時(shí)報(bào)警人工調(diào)整。Kafka 集群異常、Broker 宕機(jī)、Broker 磁盤掛載問(wèn)題、消費(fèi)者異常導(dǎo)致消息積壓等都會(huì)給用戶直接感覺(jué)是消息丟失了。

案例:輿情分析中數(shù)據(jù)采集同步

1c12aa22-3248-11ed-ba43-dac502259ad0.jpg
  • PM 可自己下發(fā)采集調(diào)度指令,去采集特定數(shù)據(jù)。
  • PM 可通過(guò) ES 近實(shí)時(shí)查詢對(duì)應(yīng)數(shù)據(jù),若沒(méi)相應(yīng)數(shù)據(jù)可再次下發(fā)指令。

當(dāng)感知消息丟失了,那就需要一種機(jī)制來(lái)檢查消息是否丟失。

檢索消息

運(yùn)維工具有:

  1. 查看 Kafka 消費(fèi)位置:
>基于SpringBoot+MyBatisPlus+Vue&Element實(shí)現(xiàn)的后臺(tái)管理系統(tǒng)+用戶小程序,支持RBAC動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
>
>*項(xiàng)目地址:
>*視頻教程#查看某個(gè)topic的message數(shù)量
$./kafka-run-class.shkafka.tools.GetOffsetShell--broker-listlocalhost:9092--topictest_topic


>基于SpringCloudAlibaba+Gateway+Nacos+RocketMQ+Vue&Element實(shí)現(xiàn)的后臺(tái)管理系統(tǒng)+用戶小程序,支持RBAC動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能
>
>*項(xiàng)目地址:
>*視頻教程#查看consumerGroup列表
$./kafka-consumer-groups.sh--list--bootstrap-server192.168.88.108:9092

#查看offset消費(fèi)情況
$./kafka-consumer-groups.sh--bootstrap-serverlocalhost:9092--groupconsole-consumer-1152--describe
GROUPTOPICPARTITIONCURRENT-OFFSETLOG-END-OFFSETLAGCONSUMER-IDHOSTCLIENT-ID
console-consumer-1152test_topic0-4-consumer-console-consumer-1152-1-2703ea2b-b62d-4cfd-8950-34e8c321b942/127.0.0.1consumer-console-consumer-1152-1
  1. 利用工具:Kafka Tools
1c1fe430-3248-11ed-ba43-dac502259ad0.jpg
  1. 其他可見化界面工具

2、哪些環(huán)節(jié)可能丟消息?

一條消息從生產(chǎn)到消費(fèi)完成經(jīng)歷 3 個(gè)環(huán)節(jié):消息生產(chǎn)者、消息中間件、消息消費(fèi)者。

1bed7338-3248-11ed-ba43-dac502259ad0.jpg

哪個(gè)環(huán)節(jié)都有可能出現(xiàn)消息丟失問(wèn)題。

1)生產(chǎn)端

首先要認(rèn)識(shí)到 Kafka 生產(chǎn)端發(fā)送消息流程:

調(diào)用 send() 方法時(shí),不會(huì)立刻把消息發(fā)送出去,而是緩存起來(lái),選擇恰當(dāng)時(shí)機(jī)把緩存里的消息劃分成一批數(shù)據(jù),通過(guò) Sender 線程按批次發(fā)送給服務(wù)端 Broker

1c37d91e-3248-11ed-ba43-dac502259ad0.jpg

此環(huán)節(jié)丟失消息的場(chǎng)景有: 即導(dǎo)致 Producer 消息沒(méi)有發(fā)送成功

  1. 網(wǎng)絡(luò)波動(dòng): 生產(chǎn)者與服務(wù)端之間的鏈路不可達(dá),發(fā)送超時(shí)。現(xiàn)象是:各端狀態(tài)正常,但消費(fèi)端就是沒(méi)有消費(fèi)消息,就像丟失消息一樣。

  • *解決措施: *重試 props.put("retries", "10");
  • 不恰當(dāng)配置: 發(fā)送消息無(wú) ack 確認(rèn); 發(fā)送消息失敗無(wú)回調(diào),無(wú)日志。

    producer.send(newProducerRecord<>(topic,messageKey,messageStr),
    newCallBack(){...});
    
  • *解決措施: *設(shè)置 acks=1 或者 acks=all。發(fā)送消息設(shè)置回調(diào)。

回顧下重要的參數(shù) acks

  • acks=0:不需要等待服務(wù)器的確認(rèn). 這是 retries 設(shè)置無(wú)效. 響應(yīng)里來(lái)自服務(wù)端的 offset 總是 -1producer只管發(fā)不管發(fā)送成功與否。延遲低,容易丟失數(shù)據(jù)。
  • acks=1:表示 leader 寫入成功(但是并沒(méi)有刷新到磁盤)后即向 producer 響應(yīng)。延遲中等,一旦 leader 副本掛了,就會(huì)丟失數(shù)據(jù)。
  • acks=all:等待數(shù)據(jù)完成副本的復(fù)制, 等同于 -1. 假如需要保證消息不丟失, 需要使用該設(shè)置. 同時(shí)需要設(shè)置 unclean.leader.election.enabletrue, 保證當(dāng) ISR 列表為空時(shí), 選擇其他存活的副本作為新的 leader.
2)服務(wù)端

先來(lái)了解下 Kafka Broker 寫入數(shù)據(jù)的過(guò)程:

  1. Broker 接收到一批數(shù)據(jù),會(huì)先寫入內(nèi)存 PageCacheOS Cache)中。
  2. 操作系統(tǒng)會(huì)隔段時(shí)間把 OS Cache 中數(shù)據(jù)進(jìn)行刷盤,這個(gè)過(guò)程會(huì)是 「異步批量刷盤」
1c46c898-3248-11ed-ba43-dac502259ad0.jpg

這里就有個(gè)隱患,如果數(shù)據(jù)寫入 PageCacheKafka Broker宕機(jī)會(huì)怎樣?機(jī)子宕機(jī)/掉電?

  • Kafka Broker 宕機(jī): 消息不會(huì)丟失。因?yàn)閿?shù)據(jù)已經(jīng)寫入 PageCache,只等待操作系統(tǒng)刷盤即可。

  • 機(jī)子宕機(jī)/掉電: 消息會(huì)丟失。因?yàn)閿?shù)據(jù)仍在內(nèi)存里,內(nèi)存RAM 掉電后就會(huì)丟失數(shù)據(jù)。

  • 解決方案 :使用帶蓄電池后備電源的緩存 cache,防止系統(tǒng)斷電異常。
  1. 對(duì)比學(xué)習(xí) MySQL 的 “雙1” 策略,基本不使用這個(gè)策略,因?yàn)?“雙1” 會(huì)導(dǎo)致頻繁的 I/O 操作,也是最慢的一種。
  2. 對(duì)比學(xué)習(xí) RedisAOF 策略,默認(rèn)且推薦的策略:**Everysec(AOF_FSYNC_EVERYSEC) 每一秒鐘保存一次(默認(rèn)):** 。每個(gè)寫命令執(zhí)行完, 只是先把日志寫到 AOF 文件的內(nèi)存緩沖區(qū), 每隔一秒把緩沖區(qū)中的內(nèi)容寫入磁盤。

拓展:Kafka 日志刷盤機(jī)制

# 推薦采用默認(rèn)值,即不配置該配置,交由操作系統(tǒng)自行決定何時(shí)落盤,以提升性能。
# 針對(duì) broker 配置:
log.flush.interval.messages=10000 # 日志落盤消息條數(shù)間隔,即每接收到一定條數(shù)消息,即進(jìn)行l(wèi)og落盤。
log.flush.interval.ms=1000        # 日志落盤時(shí)間間隔,單位ms,即每隔一定時(shí)間,即進(jìn)行l(wèi)og落盤。

# 針對(duì) topic 配置:
flush.messages.flush.ms=1000  # topic下每1s刷盤
flush.messages=1              # topic下每個(gè)消息都落盤


# 查看 Linux 后臺(tái)線程執(zhí)行配置
$ sysctl -a | grep dirty
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10      # 表示當(dāng)臟頁(yè)占總內(nèi)存的的百分比超過(guò)這個(gè)值時(shí),后臺(tái)線程開始刷新臟頁(yè)。
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000    # 表示臟數(shù)據(jù)多久會(huì)被刷新到磁盤上(30秒)。
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500  # 表示多久喚醒一次刷新臟頁(yè)的后臺(tái)線程(5秒)。
vm.dirtytime_expire_seconds = 43200

Broker 的可靠性需要依賴其多副本機(jī)制: 一般副本數(shù) 3 個(gè)(配置參數(shù):replication.factor=3

  • Leader Partition 副本:提供對(duì)外讀寫機(jī)制。
  • Follower Partition 副本:同步 Leader 數(shù)據(jù)。
1c4de3c6-3248-11ed-ba43-dac502259ad0.jpg

副本之間的數(shù)據(jù)同步也可能出現(xiàn)問(wèn)題:數(shù)據(jù)丟失問(wèn)題和數(shù)據(jù)不一致問(wèn)題。

解決方案:ISREpoch 機(jī)制

  • ISR(In-Sync Replicas) : 當(dāng) Le``ader 宕機(jī),可以從 ISR 中選擇一個(gè) Follower 作為 Leader

  • Epoch 機(jī)制: 解決 Leader 副本高水位更新和 Follower 副本高水位更新在時(shí)間上是存在錯(cuò)配問(wèn)題。

    Tips: Kafka 0.11.x 版本才引入 leader epoch 機(jī)制解決高水位機(jī)制弊端。

對(duì)應(yīng)需要的配置參數(shù)如下:

  1. acks=-1 或者 acks=all 必須所有副本均同步到消息,才能表明消息發(fā)送成功。

  2. replication.factor >= 3 副本數(shù)至少有 3 個(gè)。

  3. min.insync.replicas > 1 代表消息至少寫入 2個(gè)副本才算發(fā)送成功。前提需要 acks=-1

    舉個(gè)栗子:Leader 宕機(jī)了,至少要保證 ISR 中有一個(gè) Follower,這樣這個(gè)Follwer被選舉為Leader 且不會(huì)丟失數(shù)據(jù)。

    公式:replication.factor = min.insync.replicas + 1

  4. unclean.leader.election.enable=false 防止不在 ISR 中的 Follower 被選舉為 Leader

    Kafka 0.11.0.0版本開始默認(rèn) unclean.leader.election.enable=false

3)消費(fèi)端

消費(fèi)端消息丟失場(chǎng)景有:

  1. 消息堆積: 幾個(gè)分區(qū)的消息都沒(méi)消費(fèi),就跟丟消息一樣。

  • 解決措施: 一般問(wèn)題都出在消費(fèi)端,盡量提高客戶端的消費(fèi)速度,消費(fèi)邏輯另起線程進(jìn)行處理。
  • 自動(dòng)提交: 消費(fèi)端拉下一批數(shù)據(jù),正在處理中自動(dòng)提交了 offset,這時(shí)候消費(fèi)端宕機(jī)了; 重啟后,拉到新一批數(shù)據(jù),而上一批數(shù)據(jù)卻沒(méi)處理完。

  • 解決措施: 取消自動(dòng)提交 auto.commit = false,改為手動(dòng) ack
  • 心跳超時(shí),引發(fā) Rebalance 客戶端心跳超時(shí),觸發(fā) Rebalance被踢出消費(fèi)組。如果只有這一個(gè)客戶端,那消息就不會(huì)被消費(fèi)了。

    同時(shí)避免兩次 poll 的間隔時(shí)間超過(guò)閾值:

  • max.poll.records:降低該參數(shù)值,建議遠(yuǎn)遠(yuǎn)小于 <單個(gè)線程每秒消費(fèi)的條數(shù)> * <消費(fèi)線程的個(gè)數(shù)> * 的積。

  • max.poll.interval.ms: 該值要大于 / (<單個(gè)線程每秒消費(fèi)的條數(shù)> * <消費(fèi)線程的個(gè)數(shù)>) 的值。

  • 解決措施: 客戶端版本升級(jí)至 0.10.2 以上版本。

案例:凡凡曾遇到數(shù)據(jù)同步時(shí),消息中的文本需經(jīng)過(guò) NLPNER 分析,再同步到 ES

這個(gè)過(guò)程的主要流程是:

1c5a2208-3248-11ed-ba43-dac502259ad0.jpg
  1. 數(shù)據(jù)同步程序從 Kafka 中拉取消息。
  2. 數(shù)據(jù)同步程序?qū)⑾?nèi)的文本發(fā)送的 NER 進(jìn)行分析,得到特征數(shù)組。
  3. 數(shù)據(jù)同步程序?qū)⑾⑼浇o ES

現(xiàn)象:線上數(shù)據(jù)同步程序運(yùn)行一段時(shí)間后,消息就不消費(fèi)了。

  • 排查日志: 發(fā)現(xiàn)有 Rebalance 日志,懷疑是客戶端消費(fèi)太慢被踢出了消費(fèi)組。
  • 本地測(cè)試: 發(fā)現(xiàn)運(yùn)行一段時(shí)間也會(huì)出現(xiàn) Rebalance,且 NLPNER 服務(wù)訪問(wèn) HTTP 500 報(bào)錯(cuò)。
  • 得出結(jié)論:NER服務(wù)異常,導(dǎo)致數(shù)據(jù)同步程序消費(fèi)超時(shí)。且當(dāng)時(shí)客戶端版本為 v0.10.1Consumer 沒(méi)有獨(dú)立線程維持心跳,而是把心跳維持與 poll 接口耦合在一起,從而也會(huì)造成心跳超時(shí)。

當(dāng)時(shí)解決措施是:

  1. session.timeout.ms 設(shè)置為 25s,當(dāng)時(shí)沒(méi)有升級(jí)客戶端版本,怕帶來(lái)其他問(wèn)題。
  2. 熔斷機(jī)制: 增加 Hystrix,超過(guò) 3 次服務(wù)調(diào)用異常就熔斷,保護(hù)客戶端正常消費(fèi)數(shù)據(jù)。

3、如何確保消息不丟失?

掌握這些技能:

  1. 熟悉消息從發(fā)送到消費(fèi)的每個(gè)階段
  2. 監(jiān)控報(bào)警 Kafka 集群
  3. 熟悉方案 “MQ 可靠消息投遞”
怎么確保消息 100% 不丟失?

到這,總結(jié)下:

  1. 生產(chǎn)端:
  • 設(shè)置重試:props.put("retries", "10");
  • 設(shè)置 acks=all
  • 設(shè)置回調(diào):producer.send(msg, new CallBack(){...});
  1. Broker:
  • 內(nèi)存:使用帶蓄電池后備電源的緩存 cache
  • Kafka 版本 0.11.x 以上:支持 Epoch 機(jī)制。
  • replication.factor >= 3 副本數(shù)至少有 3 個(gè)。
  • min.insync.replicas > 1 代表消息至少寫入 2個(gè)副本才算發(fā)送成功。前提需要 acks=-1
  • unclean.leader.election.enable=false 防止不在 ISR 中的 Follower 被選舉為 Leader
  1. 消費(fèi)端
  • 客戶端版本升級(jí)至 0.10.2 以上版本。
  • 取消自動(dòng)提交 auto.commit = false,改為手動(dòng) ack
  • 盡量提高客戶端的消費(fèi)速度,消費(fèi)邏輯另起線程進(jìn)行處理。


審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 消息隊(duì)列
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    2969
  • kafka
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    5211

原文標(biāo)題:案例 | Kafka 為什么會(huì)丟消息?

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux下進(jìn)程通訊消息隊(duì)列

    ?MQ(message queue),從字面意思上看,本質(zhì)是個(gè)隊(duì)列,F(xiàn)IFO 先入先出,只不過(guò)隊(duì)列中存放的內(nèi)容是message 而已。MQ 是在消息的傳輸過(guò)程中保存消息的容器。多用于分
    的頭像 發(fā)表于 08-19 19:56 ?1790次閱讀
    Linux下進(jìn)程通訊消息<b class='flag-5'>隊(duì)列</b>

    RT-thread內(nèi)核之消息隊(duì)列

    ; pointer indicated the free node of queue *///指向空閑隊(duì)列};typedef struct rt_messagequeue *rt_mq_t;#endif
    發(fā)表于 03-06 17:17

    請(qǐng)問(wèn)ucosIII的消息隊(duì)列怎么使用?

    POST消息,但是 接收到的消息 是空的不知道是哪的原因。并且 怎么設(shè)置 消息隊(duì)列的數(shù)據(jù) 存儲(chǔ)區(qū)呢 ?我記得在 ucosII 中可以直接 定義 :gsm_req_event = OSQCreate(gsm_req_mq, MAX_GSM_REQ_
    發(fā)表于 08-06 04:36

    RT-Thread系統(tǒng)消息隊(duì)列常用的函數(shù)接口有哪些

    struct rt_messagequeue 表示。另外 rt_mq_t 表示消息隊(duì)列的句柄,即指向消息隊(duì)列控制塊的指針。消息隊(duì)列控制塊的數(shù)據(jù)結(jié)構(gòu)定義如下:結(jié)構(gòu)體定義中,繼承關(guān)系一目
    發(fā)表于 03-31 14:14

    使用消息隊(duì)列的rt_mq_send參數(shù)如果不相同會(huì)怎么樣

    求助1.看論壇的文章里這里寫的消息隊(duì)列不可以直接發(fā)變長(zhǎng)數(shù)據(jù)嗎?意思就是使用rt_mq_send函數(shù)的時(shí)候,size參數(shù)必須和rt_mq_create中的msg_size相同嗎?如果不相同會(huì)怎么樣?2.多個(gè)不同優(yōu)先級(jí)的線程和中斷向
    發(fā)表于 07-29 10:11

    rt_mq_recv函數(shù)是怎么從消息隊(duì)列讀取到消息的呢

    在使用rt_mq_recv函數(shù)是,遇到這樣一段代碼:rt_uint8_t rx_size;while(1){ //從消息隊(duì)列中獲取一條信息 ret = rt_mq
    發(fā)表于 08-25 14:30

    有什么方法解決RTT消息隊(duì)列的數(shù)據(jù)發(fā)送問(wèn)題

    靜態(tài)創(chuàng)建了一個(gè)消息隊(duì)列struct rt_messagequeue usart2_mq;static rt_uint8_t msg_pool[300];result = rt_mq
    發(fā)表于 08-31 14:37

    串口open參數(shù)對(duì)消息隊(duì)列rt_mq_recv執(zhí)行的影響線程假死如何解決?

    = rt_mq_send(&rx_mq, &msg, sizeof(msg)); if ( result == -RT_EFULL) {/* 消息隊(duì)列滿 */rt_kprintf("
    發(fā)表于 02-08 10:51

    創(chuàng)建消息隊(duì)列失敗,STM32F103RET6使用rt_mq_init創(chuàng)建消息隊(duì)列出錯(cuò)怎么排查啊

    user_task_thread()在mian進(jìn)入 使用rt_mq_init創(chuàng)建消息隊(duì)列出錯(cuò),出現(xiàn)HardFault_Handler 斷點(diǎn)調(diào)試最后到 rt_mq
    發(fā)表于 07-31 09:40

    發(fā)送隊(duì)列長(zhǎng)度功率控制

    無(wú)線多跳網(wǎng)絡(luò)具有信道時(shí)變性強(qiáng)、拓?fù)鋭?dòng)態(tài)變化等特點(diǎn),需要簡(jiǎn)單高效的功率控制機(jī)制。發(fā)射功率影響數(shù)據(jù)發(fā)送速率,而基于發(fā)送隊(duì)列長(zhǎng)度的功率控制機(jī)制存在可行解。為此,結(jié)合無(wú)線多跳網(wǎng)絡(luò)中間節(jié)點(diǎn)需要協(xié)助其他節(jié)點(diǎn)進(jìn)行
    發(fā)表于 03-20 15:07 ?0次下載
    發(fā)送<b class='flag-5'>隊(duì)列</b>長(zhǎng)度功率控制

    Linux IPC POSIX 消息隊(duì)列

    模型:#include#include #include mq_open() //創(chuàng)建/獲取消息隊(duì)列fd mq_get() //設(shè)置/獲取消息隊(duì)列
    發(fā)表于 04-02 14:46 ?567次閱讀

    引入消息隊(duì)列會(huì)多出哪些問(wèn)題

    前言 最近,消息隊(duì)列(Message Queue ,簡(jiǎn)稱 MQ)越來(lái)越火。很多公司在用,很多人在用,其重要性不言而喻。 如果讓你回答下面這些問(wèn)題,你的心中是否有答案了呢? 為什么要用 MQ? 引入
    的頭像 發(fā)表于 09-23 14:53 ?1713次閱讀

    設(shè)計(jì)一個(gè)MQ需要考慮哪些問(wèn)題

    本文主要講解 MQ 的通用知識(shí),讓大家先弄明白:如果讓你來(lái)設(shè)計(jì)一個(gè) MQ,該如何下手?需要考慮哪些問(wèn)題?又有哪些技術(shù)挑戰(zhàn)? 有了這個(gè)基礎(chǔ)后,我相信后面幾篇文章再講 Kafka 和 Ro
    的頭像 發(fā)表于 11-19 14:21 ?1902次閱讀

    消息隊(duì)列經(jīng)典十連問(wèn)

    我們通常說(shuō)的消息隊(duì)列,簡(jiǎn)稱MQ(Message Queue),它其實(shí)就指消息中間件,當(dāng)前業(yè)界比較流行的開源消息中間件包括:RabbitMQ、RocketMQ、Kafka。
    的頭像 發(fā)表于 03-22 10:08 ?1247次閱讀

    消息隊(duì)列的發(fā)展歷史

    上一篇我們用一個(gè)秒殺案例探討了我們?yōu)槭裁?b class='flag-5'>需要消息隊(duì)列。今天我們來(lái)回顧一下消息隊(duì)列的發(fā)展歷史。
    的頭像 發(fā)表于 10-30 10:49 ?1049次閱讀
    消息<b class='flag-5'>隊(duì)列</b>的發(fā)展歷史