更新時間:2021-08-09 16:38:45 來源:動力節(jié)點 瀏覽1093次
消息隊列RocketMQ版是阿里云基于Apache RocketMQ構(gòu)建的低延遲、高并發(fā)、高可用、高可靠的分布式消息中間件。消息隊列RocketMQ版既可為分布式應(yīng)用系統(tǒng)提供異步解耦和削峰填谷的能力,同時也具備互聯(lián)網(wǎng)應(yīng)用所需的海量消息堆積、高吞吐、可靠重試等特性。
Topic:消息主題,一級消息類型,生產(chǎn)者向其發(fā)送消息。
生產(chǎn)者:也稱為消息發(fā)布者,負(fù)責(zé)生產(chǎn)并發(fā)送消息至Topic。
消費者:也稱為消息訂閱者,負(fù)責(zé)從Topic接收并消費消息。
消息:生產(chǎn)者向Topic發(fā)送并最終傳送給消費者的數(shù)據(jù)和(可選)屬性的組合。
消息屬性:生產(chǎn)者可以為消息定義的屬性,包含Message Key和Tag。
Group:一類生產(chǎn)者或消費者,這類生產(chǎn)者或消費者通常生產(chǎn)或消費同一類消息,且消息發(fā)布或訂閱的邏輯一致。
消息隊列RocketMQ版涉及的概念的詳細(xì)解釋,請參見名詞解釋。
消息隊列RocketMQ版支持發(fā)布和訂閱模型,消息生產(chǎn)者應(yīng)用創(chuàng)建Topic并將消息發(fā)送到Topic。消費者應(yīng)用創(chuàng)建對Topic的訂閱以便從其接收消息。通信可以是一對多(扇出)、多對一(扇入)和多對多。
具體通信如下圖所示。
圖1.消息收發(fā)模型
生產(chǎn)者集群:用來表示發(fā)送消息應(yīng)用,一個生產(chǎn)者集群下包含多個生產(chǎn)者實例,可以是多臺機器,也可以是一臺機器的多個進程,或者一個進程的多個生產(chǎn)者對象。
一個生產(chǎn)者集群可以發(fā)送多個Topic消息。發(fā)送分布式事務(wù)消息時,如果生產(chǎn)者中途意外宕機,消息隊列RocketMQ版服務(wù)端會主動回調(diào)生產(chǎn)者集群的任意一臺機器來確認(rèn)事務(wù)狀態(tài)。
消費者集群:用來表示消費消息應(yīng)用,一個消費者集群下包含多個消費者實例,可以是多臺機器,也可以是多個進程,或者是一個進程的多個消費者對象。
一個消費者集群下的多個消費者以均攤方式消費消息。如果設(shè)置的是廣播方式,那么這個消費者集群下的每個實例都消費全量數(shù)據(jù)。
一個消費者集群對應(yīng)一個Group ID,一個Group ID可以訂閱多個Topic,如圖1中的Group 2所示。Group和Topic的訂閱關(guān)系可以通過直接在程序中設(shè)置即可,具體設(shè)置方法可參見產(chǎn)品更新日志中的資源申請流程優(yōu)化部分。
以上就是動力節(jié)點小編介紹的"什么是消息隊列",希望對大家有幫助,想了解更多可查看Java教程。動力節(jié)點在線學(xué)習(xí)教程,針對沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識,讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
初級 202925
初級 203221
初級 202629
初級 203743