当前位置: 首页 > news >正文

RocketMq(五)消息机制

一、消息过滤:消息者在进行消息订阅时,除了可以指定要订阅消息的Topic外,还可以对指定Topic中的消息根据指定条件进行过滤,即可以订阅比Topic更加细粒度的消息类型。对于指定Topic消息的过滤有两种过滤方式:Tag过滤与SQL过滤。

1、Tag过滤:通过consumer的subscribe()方法指定要订阅消息的Tag。如果订阅多个Tag的消息,Tag间使用或运算符(双竖线||)连接。

2、SQL过滤:SQL过滤是一种通过特定表达式对事先埋入到消息中的用户属性进行筛选过滤的方式。通过SQL过滤,可以实现对消息的复杂过滤。不过,只有使用PUSH模式的消费者才能使用SQL过滤。默认情况下Broker没有开启消息的SQL过滤功能,需要在Broker加载的配置文件中添加如下属性,以开启该功能:

enablePropertyFilter = true

在启动Broker时需要指定这个修改过的配置文件。例如对于单机Broker的启动,其修改的配置文件是conf/broker.conf,启动时使用如下命令:

sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &

 SQL过滤表达式中支持多种常量类型与运算符。

(1)支持的常量类型

数值:比如:123,3.1415
字符:必须用单引号包裹起来,比如:‘abc’
布尔:TRUE 或 FALSE
NULL:特殊的常量,表示空

(2)支持的运算符:

数值比较:>,>=,<,<=,BETWEEN,=
字符比较:=,<>,IN
逻辑运算 :AND,OR,NOT
NULL判断:IS NULL 或者 IS NOT NULL

二、

相关文章:

  • [leetcode 单调栈] 901. 股票价格跨度 M
  • 系统架构设计:9 论软件系统架构评估及其应用
  • 华为云云耀云服务器L实例评测|Ubuntu云锁防火墙安装搭建使用
  • uniapp中videojs、renderjs的使用
  • 重构项目 vue2 => vue3 nuxt2 => nuxt3 遇到的问题
  • 【linux进程(三)】进程有哪些状态?--Linux下常见的三种进程状态
  • 远程实时监控管理:5G物联网技术助力配电站管理
  • 百度将在世界大会上发布AI大模型文心4.0;OpenAI考虑自主开发AI芯片
  • Java中使用正则表达式
  • CSS3实现动画加载效果
  • nginx-proxy反向代理缓存
  • Unity可视化Shader工具ASE介绍——3、ASE的Shader类型介绍
  • ds套dp——考虑位置转移or值域转移:CF1762F
  • Flink--9、双流联结(窗口联结、间隔联结)
  • 读书笔记--未来简史关键金句和阅读感悟
  • 「专题速递」JPEG AI、端到端图像编码的标准化及产品落地、深度学习
  • Angular学习笔记:路由
  • 攻防世界-fakebook
  • Python 无废话-办公自动化Excel修改数据
  • 【高性能计算】CUDA编程之OpenCV的应用(教程与代码-4)//test error
  • 鄂州:锁死中小学教师编制总量,核减小学编制五百名增至初中
  • 苏东坡:人生就是哈哈哈哈哈
  • 未来之城湖州,正在书写怎样的城市未来
  • 交涉之政、交涉之学与交涉文献——《近代中外交涉史料丛书》第二辑“总序”
  • 夜读丨喜马拉雅山的背夫
  • AI药企英矽智能第三次递表港交所:去年亏损超1700万美元,收入多数来自对外授权