亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Kafka、RocketMQ、RabbitMQ的優(yōu)劣勢比較

admin
2025年6月28日 21:58 本文熱度 142

在高并發(fā)業(yè)務(wù)場景下,典型的阿里雙11秒殺等業(yè)務(wù),消息中間件有不可替代的作用。

今天我們一起來探討:

  1. 全量的消息隊列究竟有哪些?

  2. 消息隊列的核心

  3. Kafka、RocketMQ、RabbitMQ的優(yōu)劣勢比較;

  4. 以及消息隊列的選型等@mikechen

一、最全MQ消息隊列有哪些

那么目前在業(yè)界有哪些比較知名的消息引擎呢?如下圖所示:

這里面幾乎完全列舉了當下比較知名的消息引擎,包括:

  1. ZeroMQ

  2. 推特的Distributedlog

  3. ActiveMQ:Apache旗下的老牌消息引擎

  4. RabbitMQ、Kafka:AMQP的默認實現(xiàn)。

  5. RocketMQ

  6. Artemis:Apache的ActiveMQ下的子項目

  7. Apollo:同樣為Apache的ActiveMQ的子項目的號稱下一代消息引擎

  8. 商業(yè)化的消息引擎IronMQ

  9. 以及實現(xiàn)了JMS(Java Message Service)標準的OpenMQ。

  10. Pulsar(下一代的云原生分布式消息流平臺)


二、MQ消息隊列的技術(shù)應(yīng)用


1.解耦解耦是消息隊列要解決的最本質(zhì)問題。

2.最終一致性

最終一致性指的是兩個系統(tǒng)的狀態(tài)保持一致,要么都成功,要么都失敗。

最終一致性不是消息隊列的必備特性,但確實可以依靠消息隊列來做最終一致性的事情。

2.廣播

消息隊列的基本功能之一是進行廣播。

有了消息隊列,我們只需要關(guān)心消息是否送達了隊列,至于誰希望訂閱,是下游的事情,無疑極大地減少了開發(fā)和聯(lián)調(diào)的工作量。

3.錯峰與流控

典型的使用場景就是秒殺業(yè)務(wù)用于流量削峰場景。


三、Kafka、RocketMQ、RabbitMQ比較



  1. ActiveMQ


優(yōu)點

  • 單機吞吐量:萬級

  • topic數(shù)量都吞吐量的影響:

  • 時效性:ms級

  • 可用性:高,基于主從架構(gòu)實現(xiàn)高可用性

  • 消息可靠性:有較低的概率丟失數(shù)據(jù)

  • 功能支持:MQ領(lǐng)域的功能極其完備

缺點:

官方社區(qū)現(xiàn)在對ActiveMQ 5.x維護越來越少,較少在大規(guī)模吞吐的場景中使用。


2.Kafka

號稱大數(shù)據(jù)的殺手锏,談到大數(shù)據(jù)領(lǐng)域內(nèi)的消息傳輸,則繞不開Kafka,這款為大數(shù)據(jù)而生的消息中間件,以其百萬級TPS的吞吐量名聲大噪,迅速成為大數(shù)據(jù)領(lǐng)域的寵兒,在數(shù)據(jù)采集、傳輸、存儲的過程中發(fā)揮著舉足輕重的作用。

Apache Kafka它最初由LinkedIn公司基于獨特的設(shè)計實現(xiàn)為一個分布式的提交日志系統(tǒng)( a distributed commit log),之后成為Apache項目的一部分。

目前已經(jīng)被LinkedIn,Uber, Twitter, Netflix等大公司所采納。


優(yōu)點

  • 性能卓越,單機寫入TPS約在百萬條/秒,最大的優(yōu)點,就是吞吐量高。

  • 時效性:ms級

  • 可用性:非常高,kafka是分布式的,一個數(shù)據(jù)多個副本,少數(shù)機器宕機,不會丟失數(shù)據(jù),不會導(dǎo)致不可用

  • 消費者采用Pull方式獲取消息, 消息有序, 通過控制能夠保證所有消息被消費且僅被消費一次;

  • 有優(yōu)秀的第三方Kafka Web管理界面Kafka-Manager;

  • 在日志領(lǐng)域比較成熟,被多家公司和多個開源項目使用;

  • 功能支持:功能較為簡單,主要支持簡單的MQ功能,在大數(shù)據(jù)領(lǐng)域的實時計算以及日志采集被大規(guī)模使用

缺點:

  1. Kafka單機超過64個隊列/分區(qū),Load會發(fā)生明顯的飆高現(xiàn)象,隊列越多,load越高,發(fā)送消息響應(yīng)時間變長

  2. 使用短輪詢方式,實時性取決于輪詢間隔時間;

  3. 消費失敗不支持重試;

  4. 支持消息順序,但是一臺代理宕機后,就會產(chǎn)生消息亂序;

  5. 社區(qū)更新較慢;

3.RabbitMQ

RabbitMQ 2007年發(fā)布,是一個在AMQP(高級消息隊列協(xié)議)基礎(chǔ)上完成的,可復(fù)用的企業(yè)消息系統(tǒng),是當前最主流的消息中間件之一。


RabbitMQ優(yōu)點

  1. 由于erlang語言的特性,mq 性能較好,高并發(fā);

  2. 吞吐量到萬級,MQ功能比較完備 

  3. 健壯、穩(wěn)定、易用、跨平臺、支持多種語言、文檔齊全;

  4. 開源提供的管理界面非常棒,用起來很好用

  5. 社區(qū)活躍度高;

RabbitMQ缺點:

  1. erlang開發(fā),很難去看懂源碼,基本職能依賴于開源社區(qū)的快速維護和修復(fù)bug,不利于做二次開發(fā)和維護。

  2. RabbitMQ確實吞吐量會低一些,這是因為他做的實現(xiàn)機制比較重。

  3. 需要學(xué)習(xí)比較復(fù)雜的接口和協(xié)議,學(xué)習(xí)和維護成本較高。

4.RocketMQ

RocketMQ出自 阿里公司的開源產(chǎn)品,用 Java 語言實現(xiàn),在設(shè)計時參考了 Kafka,并做出了自己的一些改進。

RocketMQ在阿里集團被廣泛應(yīng)用在訂單,交易,充值,流計算,消息推送,日志流式處理,binglog分發(fā)等場景。


RocketMQ優(yōu)點:

  1. 單機吞吐量:十萬級

  2. 可用性:非常高,分布式架構(gòu)

  3. 消息可靠性:經(jīng)過參數(shù)優(yōu)化配置,消息可以做到0丟失

  4. 功能支持:MQ功能較為完善,還是分布式的,擴展性好

  5. 支持10億級別的消息堆積,不會因為堆積導(dǎo)致性能下降

  6. 源碼是java,我們可以自己閱讀源碼,定制自己公司的MQ,可以掌控

RocketMQ缺點:

  1. 支持的客戶端語言不多;

  2. 社區(qū)活躍度一般

  3. 沒有在 mq 核心中去實現(xiàn)JMS等接口,有些系統(tǒng)要遷移需要修改大量代碼


RocketMQ參考Kafka而設(shè)計的,性能在十萬級/秒,主要用于金融等場景。

廣泛來說,電商、金融等對事務(wù)性要求很高的,可以考慮RocketMQ。

技術(shù)挑戰(zhàn)不是特別高,用 RabbitMQ 是不錯的選擇。

如果是大數(shù)據(jù)領(lǐng)域的實時計算、日志采集等場景可以考慮 Kafka。


閱讀原文:原文鏈接


該文章在 2025/7/2 0:01:58 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved