欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談一下RabbitMQ、Kafka和RocketMQ消息中間件對比

 更新時間:2023年05月20日 09:11:55   作者:叫我二蛋  
這篇文章主要介紹了淺談一下RabbitMQ、Kafka和RocketMQ消息中間件對比,消息中間件屬于分布式系統(tǒng)中一個字系統(tǒng),關注于數據的發(fā)送和接收,利用高效可靠的異步信息傳遞機制對分布式系統(tǒng)中的其余各個子系統(tǒng)進行集成,需要的朋友可以參考下

前言

不論Kafka還是RabbitMQ和RocketMQ,作為消息中間件,其作用為應用解耦、異步通訊、流量削峰填谷等。 拿我之前參加的一個電商項目來說,訂單消息通過MQ從訂單系統(tǒng)到支付系統(tǒng)、庫存系統(tǒng)等,當訂單信息寫入MQ后就不再關心后續(xù)操作,既達到了應用解耦又達到異步通信。因為訂單的并發(fā)量較大,為了避免數據庫承受不住,在訂單信息持久化時通過MQ+定時任務將訂單信息均勻的持久到數據庫中,達到削峰填谷作用。 那為什么有這么多的MQ?這些MQ又有什么區(qū)別?本文基于RabbitMQ、Kafka、RocketMQ,從側重點、架構模型、消息通訊以及其他方面對比說明。

側重點

每個MQ的側重點不一樣。

  • RabbitMQ RabbitMQ由以高性能、健壯以及可伸縮性出名的Erlang語言編寫,在擴展或刪除Rabbit服務節(jié)點時只需要同步erlang信息即可。另外rabbitmq在數據可靠性的問題上做了很大的努力,它保證在這里數據是非常可靠的。
  • Kafka Kafka由Scala和Java編寫,與RabbitMQ不同,Kafka是一種高吞吐量的分布式消息中間件,其通過零拷貝、pagecahe技術以及分區(qū)的設計實現高吞吐,同時分區(qū)的設計也避免了消息存儲瓶頸問題。
  • RocketMQ RocketMQ是阿里出品的,參考Kafka架構使用Java語言重新編寫的一個消息中間件,彌補了Kafka的擴展性,在Kafka基礎上擴展了多種消息模式,比如延遲消息、事務消息。

架構模型

  • RabbitMQ

RabbitMQ 基于AMQP協(xié)議實現,其模型如下:

在這里插入圖片描述

Kafka與RocketMQ架構類似,RocketMQ使用NameServer代替了Zookeeper,這一點我覺得對開發(fā)人員是比較友好的,少了一個組件。

  • Kafka

在這里插入圖片描述

  • RocketMQ

在這里插入圖片描述

消息通訊

  • RabbitMQ

RabbitMQ支持發(fā)布訂閱、Topic及RPC多種通訊方式,滿足大部分消息通訊,并支持死信隊列。另外,RabbitMQ的插件社區(qū)支持豐富的插件,可通過安裝插件添加額外的功能。例如,延遲隊列、優(yōu)先隊列、管理控制臺等插件。

  • Kafka

相比RabbitMQ,Kafka只有單一的Topic通訊方式,消息在消費后依然不支持死信隊列、延遲隊列等。

  • RocketMQ

RocketMQ也是基于Topic進行通訊,畢竟架構模型相似,不過RocketMQ本身支持延遲消息、事務消息等,功能比較豐富。

其他對比

RabbitMQKafkaRocketMQ
社區(qū)活躍度較高一版
持久化支持支持支持
并發(fā)吞吐極高極高
時效性us級ms級ms級
數據可靠極高
應用場景高可靠交易系統(tǒng)日志系統(tǒng)、大數據應用互聯(lián)網高并發(fā)、高可用應用

總結

每個MQ的功能及作用大差不差,都有自己的優(yōu)勢以及不足,選擇適合業(yè)務的MQ就可以。

到此這篇關于淺談一下RabbitMQ、Kafka和RocketMQ消息中間件對比的文章就介紹到這了,更多相關RabbitMQ、Kafka和RocketMQ對比內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 確保SpringBoot定時任務只執(zhí)行一次的常見方法小結

    確保SpringBoot定時任務只執(zhí)行一次的常見方法小結

    在Spring Boot項目中,確保定時任務只執(zhí)行一次是一個常見的需求,這種需求可以通過多種方式來實現,以下是一些常見的方法,它們各具特點,可以根據項目的實際需求來選擇最合適的方法,需要的朋友可以參考下
    2024-10-10
  • 如何為Logback日志添加唯一追蹤ID

    如何為Logback日志添加唯一追蹤ID

    本文介紹了如何為Logback日志添加唯一追蹤ID,以便在測試和調試時更容易定位報錯信息,通過創(chuàng)建過濾器和修改配置文件,可以在每個請求的日志中添加唯一的ID,并將其返回給前端,這樣,當用戶反饋報錯時,開發(fā)人員可以根據ID快速定位和解決問題
    2024-12-12
  • Spring MVC 中攔截器的使用示例詳解"攔截器基本配置"和 "攔截器高級配置"

    Spring MVC 中攔截器的使用示例詳解"攔截器基本配置"和 &q

    Spring MVC 的攔截器作用是在請求到達控制器之前或之后進行攔截,可以對請求和響應進行一些特定的處理,這篇文章主要介紹了Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高級配置”,需要的朋友可以參考下
    2024-07-07
  • SpringSecurity實現登陸認證并返回token方式

    SpringSecurity實現登陸認證并返回token方式

    這篇文章主要介紹了SpringSecurity實現登陸認證并返回token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java數據結構之圖的領接矩陣詳解

    Java數據結構之圖的領接矩陣詳解

    圖的領接矩陣存儲方式是用兩個數組來表示圖。一個一位數組存儲圖中頂點信息,一個二維數組存儲圖中的邊或弧的信息。本文將為大家重點介紹一下數據結構中的圖的鄰接矩陣,快來跟隨小編一起學習吧
    2021-11-11
  • 使用SpringBoot注解方式處理事務回滾實現

    使用SpringBoot注解方式處理事務回滾實現

    這篇文章主要介紹了使用SpringBoot注解方式處理事務回滾實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • idea熱部署且開啟自動編譯的實現方法

    idea熱部署且開啟自動編譯的實現方法

    這篇文章主要介紹了idea熱部署且開啟自動編譯的實現方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Spring?cloud?OpenFeign中動態(tài)URl、動態(tài)傳遞接口地址代碼示例

    Spring?cloud?OpenFeign中動態(tài)URl、動態(tài)傳遞接口地址代碼示例

    openFeign是作為微服務之間調用的解決方案,每個微服務項目是必不可少的,下面這篇文章主要給大家介紹了關于Spring?cloud?OpenFeign中動態(tài)URl、動態(tài)傳遞接口地址的相關資料,需要的朋友可以參考下
    2024-02-02
  • 基于Properties實現配置數據庫驅動

    基于Properties實現配置數據庫驅動

    這篇文章主要介紹了基于Properties實現配置數據庫驅動,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java實現WORD和PDF互相轉換以及數據填充示例

    Java實現WORD和PDF互相轉換以及數據填充示例

    本文介紹了如何使用Java實現WORD和PDF的互轉以及數據填充功能,通過導入Aspose庫并使用其工具類,可以輕松實現WORD和PDF模板的填充和轉換,需要的朋友可以參考下
    2025-02-02

最新評論