RocketMQ集成Springboot --Chapter5

news/2024/7/8 1:24:08

RocketMQ tag过滤和sql92语法过滤

tag过滤

生产者,由于springboot没有专门对mq进行tag标记的方法,只是在topic:后面加上,所以只需 rocketMQTemplate.sendOneWay(“tagFilterBoot:TagA”,msg1);标记即可

生产者代码如下

    /**
     *生产者
     * tag过滤
     */
    @Test
    public void sendTagFilterMsg(){
        Message msg1 = MessageBuilder.withPayload("消息A").build();
        rocketMQTemplate.sendOneWay("tagFilterBoot:TagA",msg1);

        Message msg2 = MessageBuilder.withPayload("消息B").build();
        rocketMQTemplate.sendOneWay("tagFilterBoot:TagB",msg2);

        Message msg3 = MessageBuilder.withPayload("消息C").build();
        rocketMQTemplate.sendOneWay("tagFilterBoot:TagC",msg3);
    }

消费者在注解处添加selectorExpression = "TagA || TagC"表达式选项即可。

消费者代码如下

  /**
     *消费者
     * tag过滤
     */
@Component
@RocketMQMessageListener(consumerGroup = "tagFilterGroupBoot",topic = "tagFilterBoot",selectorExpression = "TagA || TagC")
public class TagFilterTopicListener implements RocketMQListener<MessageExt> {
    @Override
    public void onMessage(MessageExt messageExt) {
        System.out.println("收到的消息:"+new String(messageExt.getBody(), Charset.defaultCharset()));
    }
}

sql92过滤

生产者 setHeader就是设置属性

生产者代码如下

    /**
     * sql92过滤
     */
    @Test
    public void sendSQL92FilterMsg(){
        Message msg1 = MessageBuilder.withPayload("美女A,年龄22,体重45")
                .setHeader("age",22)
                .setHeader("weight",45)
                .build();
        rocketMQTemplate.sendOneWay("SQL92FilterBoot",msg1);

        Message msg2 = MessageBuilder.withPayload("美女B,年龄33,体重65")
                .setHeader("age",33)
                .setHeader("weight",65)
                .build();
        rocketMQTemplate.sendOneWay("SQL92FilterBoot",msg2);

        Message msg3 = MessageBuilder.withPayload("美女C,年龄55,体重99")
                .setHeader("age",55)
                .setHeader("weight",99)
                .build();
        rocketMQTemplate.sendOneWay("SQL92FilterBoot",msg3);
    }

消费者 只需要加上如下注解即可
selectorType = SelectorType.SQL92,selectorExpression = “age>23 and weight>80”
selectorType设置类型
selectorExpression过滤条件

消费者代码如下

@Component
@RocketMQMessageListener(consumerGroup = "SQL92FilterGroupBoot",topic = "SQL92FilterBoot",selectorType = SelectorType.SQL92,selectorExpression = "age>23 and weight>80")
public class SQL92FilterTopicListener implements RocketMQListener<MessageExt> {
    @Override
    public void onMessage(MessageExt messageExt) {
        System.out.println("收到的消息:"+new String(messageExt.getBody(), Charset.defaultCharset()));
    }
}


http://lihuaxi.xjx100.cn/news/1367785.html

相关文章

Python 模块 ddt 数据驱动测试

简介 ddt 提供了一种方便的方法来实现数据驱动测试&#xff08;Data-Driven Testing&#xff09;。数据驱动测试是一种测试方法&#xff0c;通过将测试数据与测试逻辑分开&#xff0c;可以使用不同的数据集来运行相同的测试用例。这样可以提高测试的灵活性和可维护性&#xff0…

“深入探究Spring Boot:从入门到精通“

标题&#xff1a;深入探究Spring Boot&#xff1a;从入门到精通 摘要&#xff1a;Spring Boot是一个快速开发框架&#xff0c;它简化了Spring应用的搭建和配置。本文将从入门到精通&#xff0c;介绍Spring Boot的核心概念和用法&#xff0c;并通过示例代码详细解释每个概念。 …

【网络代理】(三)Docker+Haproxy 搭建四层代理

目录 1.1 创建 web 服务器镜像 1.2 启动 web 服务器容器 2.1 编写 haproxy 配置文件 2.2 拉取 haproxy 镜像 2.3 启动 haproxy 容器 3.1 访问 8000 端口 3.2 查看 web 服务器容器日志 附录&#xff1a;haproxy 仪表板 1.1 创建 web 服务器镜像 编写一个 Docke…

深入理解 PostgreSQL 的架构和内部工作原理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Centos Certbot 使用

安装 可选配置&#xff1a;启动EPEL存储库 非必要项 yum install -y epel-release yum clean all yum makecache #启用可选通道 可以不配置 yum -y install yum-utils yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional必要配置…

进程间的通信之管道(匿名管道)

文章目录 进程间通信&#xff08;IPC&#xff09;管道管道特点为什么可以使用管道进行进程间通信管道数据结构匿名管道的使用 管道实例管道读写特点管道设置非阻塞 进程间通信&#xff08;IPC&#xff09; inter process conmmunication &#x1f447;&#x1f447;&#x1f…

Istio Pilot源码学习(一):Pilot-Discovery启动流程、ConfigController配置规则发现

本文基于Istio 1.18.0版本进行源码学习 1、Pilot-Discovery工作原理 Pilot-Discovery是Istio控制面的核心&#xff0c;负责服务网格中的流量管理以及控制面和数据面之间的配置下发 Pilot-Discovery从注册中心&#xff08;如Kubernetes&#xff09;获取服务信息并汇集&#xff…

Java使用Jsoup实现一个网页爬虫

更多文章&#xff1a;技数未来 (techdatafuture.com) Jsoup是一个开源的Java HTML解析库&#xff0c;用于从网页中提取和操作数据。它提供了一种简单和方便的方式来处理HTML&#xff0c;并且可以在Java中实现网页爬虫。 Jsoup的优点包括&#xff1a; 1. 简单易用&#xff1a;J…