首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RocketMQ使用过滤器filterServer(4.3版本后)

RocketMQ使用过滤器filterServer(4.3版本后)

作者头像
凡人飞
发布于 2020-09-20 12:26:29
发布于 2020-09-20 12:26:29
1.1K00
代码可运行
举报
文章被收录于专栏:指缝阳光指缝阳光
运行总次数:0
代码可运行

一、首先将broker和namesrv停止

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/software/rocketmq/bin
./mqshutdown broker
./mqshutdown namesrv

二、修改broker的配置文件

新增一条配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#开启对filter的支持
enablePropertyFilter=true

三、启动namesrv和broker

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/software/rocketmq/bin
nohup sh mqnamesrv & (运行后可能会有中断提示,不用管,使用Ctrl+C关闭)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/software/rocketmq/bin
nohup sh mqbroker -c /opt/software/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

提示: 可以进入控制台界面查看broker的配置,查看enablePropertyFilter的属性是否为true,为true为代表开启成功

四、编写代码

在消费者类中订阅时使用SQL来进行过滤,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//使用sql来进行过滤
consumer.subscribe("TopicFilter",MessageSelector.bySql(
        "TAGS is not null and TAGS in ('TagB','TagC') " +
        " and index is not null and (index between 5 and 9)"));

其中的TAGS代表的是生产者设置的tag,以此为标记可以进行过滤;index是用户自定义的属性。

注意:在4.3版本以前的过滤器是会在broker的服务器上运行一个filterServer的进程,并在broker的配置中加上:filterServerNums=1。 最后编写代码时会写一个实现MessageFilter接口的类,然后消费者类中编写添加如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String filterCode = MixAll.file2String("过滤类的绝对路径");
System.out.println(filterCode);
consumer.subscribe("TopicFilter","xjf.filter.MessageFilterImpl(类的相对路径)",filterCode);

在运行时会将MessageFilterImpl类的内容发送到服务器(FilterServer)上,这个类中不能有中文。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
RocketMQ 零基础 集群及控制台部署
一、首先准备linux环境 使用了两个虚拟机系统 版本为Centos 7 ip地址固定为192.168.194.128 192.168.194.129
heasy3
2020/08/02
1.8K0
RocketMQ系列(六)批量发送与过滤
今天我们再来看看RocketMQ的另外两个小功能,消息的批量发送和过滤。这两个小功能提升了我们使用RocketMQ的效率。
小忽悠
2020/06/15
1.9K0
RocketMQ系列(六)批量发送与过滤
RocketMQ的集群部署以及可视化监控界面
​ RocketMQ是一个轻量级、高可用、低延时的消息中间件,能实现消息的存储,消息的失败重试,批量消息处理,延时消息处理等特性,在各种消息中间件中表现优异。
Dream城堡
2022/01/07
8450
RocketMQ的集群部署以及可视化监控界面
RocketMQ入门案例【面试+工作】
RocketMQ入门案例【面试+工作】 0 RocketMQ简介 0.1 介绍 RocketMQ是一个消息中间件。消息中间件中有两个角色:消息生产者和消息消费者。RocketMQ里同样有这两个概念,消息生产者负责创建消息并发送到RocketMQ服务器,RocketMQ服务器会将消息持久化到磁盘,消息消费者从RocketMQ服务器拉取消息并提交给应用消费。 0.2 特点 RocketMQ是一款分布式、队列模型的消息中间件,具有以下特点: 支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能
Java帮帮
2018/06/05
2.2K0
万字精华总结RocketMQ的常见用法(案例+图)
上篇博文,我们介绍了什么是RocketMQ,以及如何安装单机版的RocketMQ。在安装的过程了,我们主要安装了两个服务,NameServer和Broker。在发送和接收消息时,又接触了两个概念,生产者和消费者。
程序猿小亮
2021/12/07
2.1K0
万字精华总结RocketMQ的常见用法(案例+图)
RocketMQ入门手册
继我上一篇博客后 分布式消息队列RocketMQ学习教程① 上一篇博客最主要介绍了几种常用的MQ,所以本博客再简单介绍一下RocketMQ的原理和简单的例子,基于Java实现,希望可以帮助学习者
SmileNicky
2019/01/17
1.6K0
RocketMQ 环境搭建
RocketMQ 环境搭建 一. 开发环境 操作系统:CentOS7 JDK1.8 二. 安装JDK 下载jdk-8u181-linux-x64.tar.gz包到/usr/local下 解压 tar -zxvf jdk-8u181-linux-x64.tar.gz 重命名 mv jdk1.8.0_181/ ./jdk1.8 配置Java环境变量 修改配置文件 /etc/profile vi /etc/profile 在文件末尾增加Java环境变量配置 export JAVA
张申傲
2020/09/03
9060
RocketMQ系列之原理简介和安装部署
消息队列(Message Queue,简称MQ)。消息中间件作为实现分布式消息系统可拓展、可伸缩性的关键组件,具有高吞吐量、高可用等等优点。
SmileNicky
2022/05/07
5320
RocketMQ系列之原理简介和安装部署
RocketMQ的TAG过滤和SQL过滤机制
项目中各个中台都使用同一个DB。而DB下会使用中间件监听binlog转换成MQ消息,而下游的各个中台去MQ去拿自己感兴趣的消息。
CBeann
2023/12/25
4830
RocketMQ的TAG过滤和SQL过滤机制
RocketMQ入坑系列(二)近距离感受RocketMQ如何收发消息
RocketMQ官方GitHub上有一个项目rocketmq-externals,提供了很多扩展:
行百里er
2020/12/02
1K0
RocketMQ入坑系列(二)近距离感受RocketMQ如何收发消息
RocketMQ学习3-使用示例
异步消息通常用在对响应时间敏感的业务场景,即发送端不能容忍长时间地等待Broker的响应。
Vincent-yuan
2021/11/10
8380
面试官:使用 RocketMQ 怎么进行灰度发布?
灰度发布是指在黑与白之间,平滑过渡的一种发布方式。在大流量的系统中,如果一次升级改造范围比较大,或者影响内容不太确定,一般会采用切量的方式进行升级,这样可以减少生产变更带来的影响。
jinjunzhu
2022/12/20
8830
面试官:使用 RocketMQ 怎么进行灰度发布?
RocketMQ原生API使用
代码地址:https://gitcode.net/java_wxid/rocketmq-api
Java廖志伟
2022/03/07
1.1K0
RocketMQ原生API使用
分布式消息中间件RocketMQ学习教程①
消息队列(Message Queue,简称MQ)。消息中间件作为实现分布式消息系统可拓展、可伸缩性的关键组件,具有高吞吐量、高可用等等优点。
SmileNicky
2019/01/17
2.7K0
RocketMQ入门(三)
异步消息通常用在对响应时间敏感的业务场景,即发送端不能容忍长时间地等待Broker的响应。
传说之下的花儿
2023/11/29
4150
RocketMQ入门(三)
RocketMQ消息过滤实现原理
RocketMQ消息中间件相比于其他消息中间件提供了更细粒度的消息过滤,相比于Topic做业务维度的区分,Tag,即消息标签,用于对某个Topic下的消息进行进一步分类。消息队列RocketMQ版的生产者在发送消息时,指定消息的Tag,消费者需根据已经指定的Tag来进行订阅。
叔牙
2022/12/18
6790
RocketMQ消息过滤实现原理
SpringBoot集成RocketMq
同步发送是指消息发送方发出数据后,同步等待,直到收到接收方发回响应之后才发下一个请求。
程序员子龙
2023/11/26
5750
SpringBoot集成RocketMq
Rocketmq两主两从集群部署
环境准备 准备两台服务器或者虚拟机 服务器一:192.***.*.31 服务器二:192.***.*.32 部署模式: 2M-2S-SYNC(两主两从同步写) 相关安装包存储路径:/root/svr/
茶半香初
2021/11/26
8130
Rocketmq两主两从集群部署
RocketMQ5部署
由于 Local 模式下 Proxy 和 Broker 是同进程部署,Proxy本身无状态,因此主要的集群配置仍然以 Broker 为基础进行即可。
似水的流年
2023/10/16
4860
RocketMQ-环境搭建(单master模式-ubuntu版)
一、linux安装unzip软件 输入命令: sudo apt-get install unzip 提示:如果出现 Unable to locate package 则需要先执行命令更新: sudo apt-get update 二、添加Hosts信息 vim /etc/hosts #内网IP 172.19.129.62 rocketmq-nameserver1 172.19.129.62 rocketmq-master1 三、上传rocketmq-all-4.4.0-bin-release.zip 将压
凡人飞
2020/09/21
1.6K0
相关推荐
RocketMQ 零基础 集群及控制台部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档