消息隊列如何利用標籤實現消息過濾

場景介紹html

一個消息隊列(MQ)存儲的消息,能夠包含不一樣實際用途。若是這些消息不加區分,消費者每次消費都會按順序拉取消息,直到完成對全部消息的消費。若是消費者只對某一類型的消息感興趣,那麼將全部消息都消費一遍必會影響消費者處理效率。異步

 

解決方案分佈式

分佈式消息服務DMS是穩定可靠的消息隊列服務,提供普通隊列、有序隊列、Kafka、ActiveMQ、RabbitMQ,兼容HTTP、TCP、AMQP協議,應用於系統解耦、異步通訊、流量削峯去谷、第三方集成等場景。DMS提供消息標籤的能力,支持生產者爲每條消息提供一個或多個標籤(tag)。標籤(tag)是用來區分某個 消息隊列(MQ) Topic 下的消息分類,一般狀況下,標籤(tag)能夠用來區分同一個 Topic 下相互關聯的消息,就像全集和子集的關係,流程前後的關係。消費者則根據標籤(tag)的內容來過濾消息,確保每一個消費者最終只會消費到它感興趣的消息類型,提升消息消費效率。htm


以金融交易場景爲例,在一種交易中可能會產生多種類型的消息,如股票(stock),基金(fund),貸款(loan)等。這些消息會經過交易(business)Topic發送到business_Topic 的隊列(MQ)中,並傳遞給不一樣的處理系統,如股票系統,基金系統,貸款系統,實時分析系統等。然而基金系統只關心基金類型的消息,而實時分析系統可能須要獲取到全部類型的消息,以下圖所示:blog

 

在生產消息時,生產者對每條消息加上標籤(tag),消費者在拉取消息時決定是否僅獲取帶有某標籤(tag)的消息,沒有被指明標籤(tag)的消息則不會獲取,從而大大提升了消息消費效率。以下圖所示:隊列

增長標籤(tag)的消息消費示意圖get

 

DMS普通隊列與FIFO隊列均支持消息標籤(tag)功能,使用DMS服務,輕鬆利用消息標籤實現消息過濾。想要了解DMS的更多其餘特性和功能,歡迎點擊分佈式消息服務DMS查看。消息隊列

相關文章
相關標籤/搜索