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

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

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

消息中間件在分布式以及高并發(fā)架構(gòu)都是重要的內(nèi)容,下面我就重點來詳解消息中間件@mikechen

消息中間件定義

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

 

消息中間件應(yīng)用場景

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

1.異步通信

通過消息中間件,不同的服務(wù)之間可以進行異步通信,可以提高系統(tǒng)的吞吐量和并發(fā)性能,避免因為同步調(diào)用而導(dǎo)致的阻塞和性能瓶頸。

 

2應(yīng)用解耦

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

 

3.流量控制

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

 

4.日志處理

消息中間件需要對關(guān)鍵信息進行日志記錄和處理,以便于監(jiān)控和追蹤系統(tǒng)運行情況,發(fā)現(xiàn)潛在問題,優(yōu)化系統(tǒng)性能。

 

消息中間件原理

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

如下圖所示:

上圖為整體架構(gòu)會涉及三類角色:

  1. 生產(chǎn)者:將消息發(fā)送到消息隊列中;

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

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

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

1.點對點模型

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

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

如下圖所示:

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

 

2.訂閱發(fā)布模式

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

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

如下圖所示:

 

消息中間件有哪些

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

1.Apache Kafka

Kafka是一個分布式的高吞吐量的消息系統(tǒng),最初由LinkedIn開發(fā),現(xiàn)在是Apache軟件基金會的頂級開源項目之一。

Kafka廣泛應(yīng)用于多種用例,例如實時數(shù)據(jù)流處理、日志聚合、監(jiān)控、指標和日志收集、消息隊列等。

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

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

 

 

2.RabbitMQ

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

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

 

3.ActiveMQ

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

 

4.RocketMQ

RocketMQ是一個分布式的消息隊列系統(tǒng),由阿里巴巴集團開發(fā)并開源。

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

RocketMQ架構(gòu),如下圖所示:

RocketMQ架構(gòu):主要由NameServer、Broker、Producer以及Consumer四部分構(gòu)成。

關(guān)于RocketMQ架構(gòu)原理,更加詳細的內(nèi)容請查看:RocketMQ架構(gòu)原理詳解(4大工作原理設(shè)計圖解)

 

 5.Pulsar

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

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

 

6.Redis 消息隊列

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

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

 

消息中間件選型

總的來說:

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

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

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

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



-end-


該文章在 2024/1/23 12:30:36 編輯過
關(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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日本一道久高清免费的视频 | 无遮挡粉嫩小泬久久久久久久 | 一级国产高清免费观看 | 日本野外强奷在线播放97 | 久久重口味免费视频 | 日本精油按摩视频福利精品 |