溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫(kù)中常見(jiàn)的消息隊(duì)列有哪些

發(fā)布時(shí)間:2022-03-22 10:19:28 來(lái)源:億速云 閱讀:486 作者:iii 欄目:云計(jì)算

本文小編為大家詳細(xì)介紹“數(shù)據(jù)庫(kù)中常見(jiàn)的消息隊(duì)列有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“數(shù)據(jù)庫(kù)中常見(jiàn)的消息隊(duì)列有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

什么是消息隊(duì)列?

消息隊(duì)列是在消息的傳輸過(guò)程中保存消息的容器,用于接收消息并以文件的方式存儲(chǔ),一個(gè)隊(duì)列的消息可以同時(shí)被多個(gè)消息消費(fèi)者消費(fèi)。分布式消息服務(wù)DMS則是分布式的隊(duì)列系統(tǒng),消息隊(duì)列中的消息分布存儲(chǔ),且每條消息存儲(chǔ)多個(gè)副本,以實(shí)現(xiàn)高可用性,如下圖所示。

數(shù)據(jù)庫(kù)中常見(jiàn)的消息隊(duì)列有哪些

一般來(lái)說(shuō),消息隊(duì)列具有如下屬性:

消息順序

普通隊(duì)列支持“分區(qū)有序”和“全局隊(duì)列”兩種模式,ActiveMQ隊(duì)列和Kafka隊(duì)列均為分區(qū)有序。

分區(qū)有序的隊(duì)列通過(guò)分布式處理,支持更高的并發(fā),但由于隊(duì)列的分布式特性,DMS無(wú)法保證能夠以接收消息的精確順序進(jìn)行消費(fèi)。如果用戶要求保持順序,建議在每條消息中放置排序信息,以便在收到消息時(shí)對(duì)消息重新排序。

全局有序的隊(duì)列對(duì)消息消費(fèi)遵循先入先出規(guī)則(FIFO),適用于對(duì)消費(fèi)順序要求較高的場(chǎng)景。

至少一次傳遞

在極少數(shù)情況下,當(dāng)用戶接收或刪除消息時(shí),存儲(chǔ)消息副本的服務(wù)器之一可能不可用。如果出現(xiàn)這種情況,則該不可用服務(wù)器上的消息副本將不會(huì)被刪除,并且在接收消息時(shí)可能會(huì)再次獲得該消息副本。

這被稱(chēng)為“至少一次傳遞”,因此,用戶的應(yīng)用程序應(yīng)該設(shè)計(jì)為冪等的應(yīng)用程序(即,如果應(yīng)用程序多次處理同一條消息,則不得受到不利影響)。

消息較少時(shí)單次消費(fèi)不能獲取指定數(shù)量的消息

從消息隊(duì)列中消費(fèi)消息時(shí),DMS每次從部分消息存儲(chǔ)分區(qū)中讀取消息返回消息給消費(fèi)者,如果隊(duì)列中的消息數(shù)比較少,則單次消費(fèi)可能會(huì)少于指定條數(shù),但多次消費(fèi)最終可獲取全部消息。

常見(jiàn)消息隊(duì)列介紹:

普通隊(duì)列

包括分區(qū)有序和全局有序,分區(qū)有序的普通隊(duì)列具有更高的并發(fā)性能,不保證先入先出(FIFO)的嚴(yán)格順序,全局有序的普通隊(duì)列保證消息先入先出(FIFO)的嚴(yán)格順序。DMS支持普通隊(duì)列和有序隊(duì)列,提供高并發(fā)、低延時(shí)、穩(wěn)定安全的消息中間件服務(wù)。

ActiveMQ隊(duì)列

使用AMQP協(xié)議的隊(duì)列。Advanced Message Queuing Protocol,是統(tǒng)一消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)的高級(jí)消息隊(duì)列協(xié)議,是應(yīng)用層協(xié)議的一個(gè)開(kāi)放標(biāo)準(zhǔn),為面向消息的中間件設(shè)計(jì)。DMS兼容ActiveMQ,簡(jiǎn)單易用,按需使用,支持水平擴(kuò)展,安全可靠,無(wú)憂運(yùn)維。

Kafka隊(duì)列

支持使用開(kāi)源kafka客戶端進(jìn)行生產(chǎn)消息和消費(fèi)消息。支持高吞吐和高可靠?jī)煞N模式,高吞吐模式的消息副本異步落盤(pán),具有較高的性能,高可靠模式的消息多副本同步落盤(pán),保證消息的可靠性。DMS兼容Kafka,即開(kāi)即用,安全可靠,支持高吞吐、高可靠?jī)煞N應(yīng)用場(chǎng)景。

RabbitMQ隊(duì)列

采用物理隔離方式部署,支持用戶自定義內(nèi)存規(guī)格和自定義特性,您可以根據(jù)業(yè)務(wù)需要定制相應(yīng)計(jì)算能力和存儲(chǔ)空間的RabbitMQ實(shí)例。DMS兼容RabbitMQ,提供獨(dú)占資源,保證隊(duì)列高性能。

讀到這里,這篇“數(shù)據(jù)庫(kù)中常見(jiàn)的消息隊(duì)列有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI