欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

消息中間件最全詳解(萬字圖文總結)

admin
2024年1月23日 12:30 本文熱度 712

消息中間件在分布式以及高并發架構都是重要的內容,下面我就重點來詳解消息中間件@mikechen

消息中間件定義

消息中間件(Message Middleware)是一種用于構建分布式系統的軟件基礎設施,它提供了一種異步、可靠、可伸縮的消息傳遞機制。

 

消息中間件應用場景

消息中間件的作用,主要包含如下4種:

1.異步通信

通過消息中間件,不同的服務之間可以進行異步通信,可以提高系統的吞吐量和并發性能,避免因為同步調用而導致的阻塞和性能瓶頸。

 

2應用解耦

消息中間件可以將消息發送方和接收方解耦,使得它們可以獨立地進行開發和部署,不需要直接依賴于對方的實現細節。

 

3.流量控制

消息中間件可以設置流量控制,當消息流量過大時,可以暫停消息的發送,等到流量下降時再繼續發送,從而平滑地處理流量峰值。

 

4.日志處理

消息中間件需要對關鍵信息進行日志記錄和處理,以便于監控和追蹤系統運行情況,發現潛在問題,優化系統性能。

 

消息中間件原理

消息中間件通常由生產者(Producer)、消息隊列(Message Queue)、消費者(Consumer)三部分組成。

如下圖所示:

上圖為整體架構會涉及三類角色:

  1. 生產者:將消息發送到消息隊列中;

  2. 消費者:從消息隊列中獲取消息并進行處理;

  3. 消息隊列:作為消息傳遞的橋梁,負責存儲和管理消息;

消息中間件提供多種消息傳遞模式如點對點模式和發布/訂閱模式等。

1.點對點模型

在點對點模式中,生產者將消息發送到一個特定的消息隊列中,消息隊列只會將消息傳遞給一個消費者進行處理。

也就是說,一個消息只能被一個消費者處理,這種模式也稱為隊列模式(Queue Mode)。

如下圖所示:

在點對點模式中,消息的生產者和消費者之間是一對一的關系,這種模式可以實現簡單的異步通信和任務分配,適用于需要處理一些不需要廣播的任務,如任務調度、訂單處理等。

 

2.訂閱發布模式

在訂閱發布模式中,生產者將消息發布到一個主題(Topic)中,消費者可以訂閱該主題并接收其中的消息。

在這種模式中,消息隊列會將消息廣播給所有訂閱了該主題的消費者,也就是說,一個消息可以被多個消費者同時處理。這種模式也稱為主題模式(Topic Mode)。

如下圖所示:

 

消息中間件有哪些

下面是一些常見的消息中間件:

1.Apache Kafka

Kafka是一個分布式的高吞吐量的消息系統,最初由LinkedIn開發,現在是Apache軟件基金會的頂級開源項目之一。

Kafka廣泛應用于多種用例,例如實時數據流處理、日志聚合、監控、指標和日志收集、消息隊列等。

Kafka的基本模型是生產者向主題(Topic)發布消息,消費者從主題訂閱消息。

消息通過一個或多個Kafka集群的代理(Broker)進行傳輸和存儲,如下圖所示:

 

 

2.RabbitMQ

一個開源的 AMQP(高級消息隊列協議)消息代理軟件,支持多種消息協議和多種語言的客戶端,并提供可靠性、靈活性和可擴展性等優勢。

RabbitMQ是erlang語言開發,結合erlang語言本身的并發優勢,RabbitMQ支持許多高級特性,例如消息確認、持久化、優先級、消息 TTL、消息復制和分片等。

 

3.ActiveMQ

一個完全基于 JMS(Java 消息服務)規范的消息中間件,支持多種消息協議和多種客戶端語言,并提供高可用、可靠性、事務性等特性。

 

4.RocketMQ

RocketMQ是一個分布式的消息隊列系統,由阿里巴巴集團開發并開源。

它具有高可用性、高吞吐量、高可靠性和可擴展性等特點,并且支持多種消息傳遞模式,例如發布/訂閱、點對點等。

RocketMQ架構,如下圖所示:

RocketMQ架構:主要由NameServer、Broker、Producer以及Consumer四部分構成。

關于RocketMQ架構原理,更加詳細的內容請查看:RocketMQ架構原理詳解(4大工作原理設計圖解)

 

 5.Pulsar

Pulsar是 Apache 軟件基金會頂級項目,是下一代云原生分布式消息流平臺。

Pulsar被看作是云原生時代實時消息流傳輸、存儲和計算最佳解決方案,其整體架構圖如下所示:

 

6.Redis 消息隊列

Redis除了可以用作分布式緩存,也可以用于消息隊列的使用,支持多種消息協議和多種語言的客戶端。

不同的消息中間件在設計思想、功能特性、適用場景等方面都有所差異,需要根據具體的需求和場景選擇合適的消息中間件。

 

消息中間件選型

總的來說:

  1. 電商、金融等對事務性要求很高的,可以考慮RocketMQ。

  2. 技術挑戰不是特別高,用 RabbitMQ是不錯的選擇。

  3. 如果是大數據領域的實時計算、日志采集等場景可以考慮 Kafka。

以上就是消息中間件詳解,希望對你掌握消息中間件有所幫助。



-end-


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