消息隊列屬性及常見消息隊列介紹

什麼是消息隊列?html

消息隊列是在消息的傳輸過程當中保存消息的容器,用於接收消息並以文件的方式存儲,一個隊列的消息能夠同時被多個消息消費者消費。分佈式消息服務DMS則是分佈式的隊列系統,消息隊列中的消息分佈存儲,且每條消息存儲多個副本,以實現高可用性,以下圖所示。
圖片描述安全

通常來講,消息隊列具備以下屬性:服務器

消息順序併發

普通隊列支持「分區有序」和「全局隊列」兩種模式,ActiveMQ隊列和Kafka隊列均爲分區有序。
分區有序的隊列經過分佈式處理,支持更高的併發,但因爲隊列的分佈式特性,DMS沒法保證可以以接收消息的精確順序進行消費。若是用戶要求保持順序,建議在每條消息中放置排序信息,以便在收到消息時對消息從新排序。
全局有序的隊列對消息消費遵循先入先出規則(FIFO),適用於對消費順序要求較高的場景。運維

至少一次傳遞
在極少數狀況下,當用戶接收或刪除消息時,存儲消息副本的服務器之一可能不可用。若是出現這種狀況,則該不可用服務器上的消息副本將不會被刪除,而且在接收消息時可能會再次得到該消息副本。
這被稱爲「至少一次傳遞」,所以,用戶的應用程序應該設計爲冪等的應用程序(即,若是應用程序屢次處理同一條消息,則不得受到不利影響)。異步

消息較少時單次消費不能獲取指定數量的消息
從消息隊列中消費消息時,DMS每次從部分消息存儲分區中讀取消息返回消息給消費者,若是隊列中的消息數比較少,則單次消費可能會少於指定條數,但屢次消費最終可獲取所有消息。分佈式

常見消息隊列介紹:
普通隊列
包括分區有序和全局有序,分區有序的普通隊列具備更高的併發性能,不保證先入先出(FIFO)的嚴格順序,全局有序的普通隊列保證消息先入先出(FIFO)的嚴格順序。DMS支持普通隊列和有序隊列,提供高併發、低延時、穩定安全的消息中間件服務。高併發

ActiveMQ隊列
使用AMQP協議的隊列。Advanced Message Queuing Protocol,是統一消息服務的應用層標準的高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。DMS兼容ActiveMQ,簡單易用,按需使用,支持水平擴展,安全可靠,無憂運維。性能

Kafka隊列
支持使用開源kafka客戶端進行生產消息和消費消息。支持高吞吐和高可靠兩種模式,高吞吐模式的消息副本異步落盤,具備較高的性能,高可靠模式的消息多副本同步落盤,保證消息的可靠性。DMS兼容Kafka,即開即用,安全可靠,支持高吞吐、高可靠兩種應用場景。ui

RabbitMQ隊列
採用物理隔離方式部署,支持用戶自定義內存規格和自定義特性,您能夠根據業務須要定製相應計算能力和存儲空間的RabbitMQ實例。DMS兼容RabbitMQ,提供獨佔資源,保證隊列高性能。

分佈式消息服務DMS提供可靠且可擴展的託管消息隊列。服務應用普遍,在實際選型時是一個不錯的選擇。想要了解更多,歡迎點開分佈式消息服務DMS查看。

相關文章
相關標籤/搜索