狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

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

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

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

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

消息中間件定義

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

 

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

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

1.異步通信

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

 

2應(yīng)用解耦

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

 

3.流量控制

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

 

4.日志處理

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

 

消息中間件原理

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

如下圖所示:

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

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

  2. 消費(fèi)者:從消息隊(duì)列中獲取消息并進(jìn)行處理;

  3. 消息隊(duì)列:作為消息傳遞的橋梁,負(fù)責(zé)存儲和管理消息;

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

1.點(diǎn)對點(diǎn)模型

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

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

如下圖所示:

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

 

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

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

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

如下圖所示:

 

消息中間件有哪些

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

1.Apache Kafka

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

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

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

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

 

 

2.RabbitMQ

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

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

 

3.ActiveMQ

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

 

4.RocketMQ

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

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

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

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

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

 

 5.Pulsar

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

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

 

6.Redis 消息隊(duì)列

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

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

 

消息中間件選型

總的來說:

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

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

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

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



-end-


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