场景介绍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查看。消息队列