【干货贴】消息队列如何利用标签实现消息过滤
【摘要】 场景介绍一个消息队列(MQ)存储的消息,可以包含不同实际用途。如果这些消息不加区分,消费者每次消费都会按顺序拉取消息,直到完成对所有消息的消费。如果消费者只对某一类型的消息感兴趣,那么将所有消息都消费一遍必会影响消费者处理效率。 解决方案分布式消息服务DMS是稳定可靠的消息队列服务,提供普通队列、有序队列、Kafka、ActiveMQ、RabbitMQ,兼容HTTP、TCP、AMQP协议,应…
场景介绍
一个消息队列(MQ)存储的消息,可以包含不同实际用途。如果这些消息不加区分,消费者每次消费都会按顺序拉取消息,直到完成对所有消息的消费。如果消费者只对某一类型的消息感兴趣,那么将所有消息都消费一遍必会影响消费者处理效率。
解决方案
分布式消息服务DMS是稳定可靠的消息队列服务,提供普通队列、有序队列、Kafka、RabbitMQ,兼容HTTP、TCP、AMQP协议,应用于系统解耦、异步通信、流量削峰去谷、第三方集成等场景。DMS提供消息标签的能力,支持生产者为每条消息提供一个或多个标签(tag)。标签(tag)是用来区分某个 消息队列(MQ) Topic 下的消息分类,通常情况下,标签(tag)可以用来区分同一个 Topic 下相互关联的消息,就像全集和子集的关系,流程先后的关系。消费者则根据标签(tag)的内容来过滤消息,确保每个消费者最终只会消费到它感兴趣的消息类型,提高消息消费效率。
以金融交易场景为例,在一种交易中可能会产生多种类型的消息,如股票(stock),基金(fund),贷款(loan)等。这些消息会通过交易(business)Topic发送到business_Topic 的队列(MQ)中,并传递给不同的处理系统,如股票系统,基金系统,贷款系统,实时分析系统等。然而基金系统只关心基金类型的消息,而实时分析系统可能需要获取到所有类型的消息,如下图所示:
在生产消息时,生产者对每条消息加上标签(tag),消费者在拉取消息时决定是否仅获取带有某标签(tag)的消息,没有被指明标签(tag)的消息则不会获取,从而大大提高了消息消费效率。如下图所示:
DMS普通队列与FIFO队列均支持消息标签(tag)功能,使用DMS服务,轻松利用消息标签实现消息过滤。想要了解DMS的更多其他特性和功能,欢迎点击分布式消息服务DMS查看。
来源:华为云社区原创 作者:小柴不加胡
【干货贴】消息队列如何利用标签实现消息过滤相关推荐
- 消息队列的使用场景_消息队列MQ的特点、选型及应用场景
一.什么是消息队列 消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列. 消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可 ...
- RabbitMQ:什么是消息队列MQ?为什么使用消息队列MQ?入门MQ先学哪种?(一)
0. 引言 MQ(Message Queue):消息队列,如今在各类业务场景中已经被广泛使用,特别在并发量日益增涨的业务和微服务架构中,消息队列能够帮助我们解决很多传统方式所不能解决的问题. 所以今天 ...
- 浅谈消息队列及常见的分布式消息队列中间件
背景 分布式消息队列中间件是是大型分布式系统不可缺少的中间件,通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息.所以消息队列主要解决应用耦合.异步消 ...
- 消息队列实践一之RabbitMQ消息推送(解决服务器错误:Whoops! Lost connection to ws://localhost:15674/ws)
一.写在前面的问题和解决办法 1.问题背景: RabbitMQ,用websock推送消息失败 2.问题描述: 服务器错误:Whoops! Lost connection to ws://localho ...
- Java架构之消息队列 (一):消息队列的概述
消息队列系列分享大纲: 一.消息队列的概述 二.消息队列之RabbitMQ的使用 三.消息队列之Kafka的使用 四.消息队列之RabbitMQ的原理详解 五.消息队列之Kafka的原理详解 六.消息 ...
- springboot使用redis实现消息队列功能,redis使用list和stream实现消息队列功能,redis实现消息队列的风险点分析
文章目录 写在前面 基于list的消息队列解决方案 使用list基本实现消息队列 阻塞式消费,避免性能损失 替换while(true) 实现消息幂等 保证消息可靠性 基于stream的消息队列解决方案 ...
- 消息队列的实践php,php消息队列处理实践 ,利用AMQP和redis两种方法
一:利用AMQP方法 类 amqp.php e_name = $e_name; $this->q_name = $q_name; $this->k_route = $k_route; // ...
- videojs如何获取请求消息_消息队列中,如何保证消息的顺序性?
点击?蓝色" 深入原理",关注并"设为星标" 技术干货,第一时间推送 消息无序产生的原因 消息队列,既然是队列就能保证消息在进入队列,以及出队列的时候保证消息的 ...
- 消息队列、RabbitMQ原理、消息队列保证幂等性,消息丢失,消息顺序性,以及处理消息队列消息积压问题
消息队列 消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已 常见的消息队列 RabbitMq ActiveM ...
最新文章
- android 瀑布流的实现(用recyclerview的实现的)
- 使用Telnet与ssh协议远程登录linux系统
- c语言for循环加法,BigDecimal 在for循环中相加注意事项
- Vertica的这些事lt;十五gt;—— Vertica备份元数据信息
- jQuery实现布局高宽自适应
- 定量的方法如何能划分类别?
- welcome-file-list标签的控制作用以及在springmvc中此标签的的配置方式
- 用VB实现带图片的XP风格的按钮控件
- 大数据开发笔记(七):Kafka分布式流式处理
- 物联网大数据平台具备哪些功能
- 防病毒必务宝典—计算机病毒专杀进程列表(转)
- lua luarocks luacheck linux安装
- 时钟屏保fliqlo
- 唤客猫SCRM功能详解(二)
- 日本知名汽车零部件公司巡礼系列之株式会社67
- 【Ubuntu 20.04 安装中文输入法 谷歌拼音】
- Lonlife-ACM Round #7
- 3A之自动白平衡(AWB)篇
- win10pin不可用进不去系统_人脸识别门禁控制系统+安检通道
- Re28:读论文 CECP Charge Prediction by Constitutive Elements Matching of Crimes
热门文章
- java电力巡检系统 项目讲解_公司召开安全巡检系统APP试点项目上线启动会
- 求解两个经纬点之间的距离和角度(mm级精度)
- Oracle DBA 经典面试题
- ASP .NET Controller返回类型
- 使用 Task 简化异步编程
- wikioi 1688 求逆序对
- I,P,B帧和PTS,DTS的关系 转载
- java日志文件log4j.properties配置详解
- 测试笔的使用_宽带故障怎么办?毕亚兹红光笔1秒定位光纤故障,快速解决问题...
- C语言--输入一个日期,输出当前日期是这一年的第几天(完整代码)