Tag过滤|学习笔记

简介: 快速学习Tag过滤

开发者学堂课程【RocketMQ知识精讲与项目实战(第一阶段)Tag过滤】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/702/detail/12387


Tag过滤

 

内容介绍:

一、设置 tag

二、消费多个 tag

 

一、设置tag

首先创建一个 producer,再来一个 consumer,同样的将之前的内容粘贴至producer 和 consumer 中,先把 producer 的 topic 改为 filtertagtopic,然后在发送的时候,就可以指定当前的 tag1,发三条。

public static void main(String[] args) throws Exception {

//1.创建消费 Consuner制定消费者组名

DefaultMQPushConsumerconsumer=new DefaultMQPushConsumer( consumerGroup:"group1");

//指定nameserver地址consumer,setNanesrvAddr(“192.168.25.135:9876;192.168.25.138:987

6);

//3订阅主题Topic Tag

consumer.subscribe(topic:“FilterTagTopic", subExpression:"*“);

//4.设置回调函数,处理

for (MessageExt msg:msgs){ consumer.registerMessageListener((MessageListenerConcurrently)(msgs,context)

For (messaext msg:msg){

System.out.println(‘’consumethread’’+Thread.curenthread

()getName() +","+ new string(nsg.getHody()));

}

return ConsumeConcurrentlyStatus.CONSME_SUCCESS;

});

Corsumet Producer(2)

C:\develop\Java\jdi1.8.0_161\bin\java.exe ...

然后在消费者这边,就可以指定消费这个主题的哪一条消息,比如说就消费 tag1。

现在启动 producer,然后发送成功后就会打印发送的结果“消费者启动”。启动

consumer,收到了三条 tag1的消息。

Consumethread=consumemessagethread_1,hello world2

Consumethread=consumemessagethread_1,hello world1

Consumethread=consumemessagethread_1,hello world0 

现在将 producer 的指定改为 tag2,此时消费者没有消费,因为只能消费 tag1的消息

import java.util.list;

Public class Consumer {

public static void main(string[] args) throws Exception {

DefaultMQPushConsumerconsumer=newDefaultMQPushConsumer(

consumerGroup: “group1”);consumer.setNamesrvAddr(“192.168.25.135:9876;192.168.25.138:9876);

consumer.subscribe(topic:“FilterTagTopic", subExpression:“Tag1 II Tag2");

consumer.registerMessageListener((MessageListenerConcurrently)(msgs,context){

for (MessageExt sg :msgs){

system.out.println("consumeThread=”+ Thread.currentThread().getname() +”,"+ new String(msg.getBody()));

}

return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;

});

Consume.start();

System.out.println(“消费者启动”);

}

}

 

二、消费多个tag

如果既想消费 tag1,也想消费 tag2,只要在 consumer 中填写 tag1||tag2 即可,所以想要消费多个 tag 时就用||这个符号往后写就可以了,但如果想要消费的太多时,就可以用*来表示,在演示过程中,tag1 和 tag2就都能分别收到了。

相关文章
|
Kubernetes Cloud Native Linux
阿里云基于Cilium的高性能云原生网络
你知道吗,这个方案基于Cilium & eBPF来实现。在此之前,Google的GKE和Anthos也宣布基于Cilium+eBPF实现了新的容器网络数据面V2方案。但阿里云的方案会有所不同,阿里云采用Terway IPVLAN+Cilium的eBPF结合的方式。
12361 1
阿里云基于Cilium的高性能云原生网络
|
druid 关系型数据库 MySQL
【数据库】数据库连接池配置 testOnBorrow
【数据库】数据库连接池配置 testOnBorrow
1217 0
成功解决ForkingPickler(file, protocol).dump(obj) TypeError: can't pickle Environment objects
成功解决ForkingPickler(file, protocol).dump(obj) TypeError: can't pickle Environment objects
成功解决ForkingPickler(file, protocol).dump(obj) TypeError: can't pickle Environment objects
|
11月前
|
存储 分布式计算 Java
踏上大数据第一步:flume
Flume 是一个分布式、可靠且高效的系统,用于收集、聚合和移动大量日志数据。它是 Apache 顶级项目,广泛应用于 Hadoop 生态系统中。Flume 支持从多种数据源(如 Web 服务器、应用服务器)收集日志,并将其传输到中央存储(如 HDFS、HBase)。其核心组件包括 Source、Channel 和 Sink,分别负责数据获取、临时存储和最终存储。本文还介绍了在 Ubuntu 20.04 上安装 Flume 1.9.0 的步骤,涵盖 JDK 安装、Flume 下载、解压、配置环境变量及验证安装等详细过程。
234 10
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
1158 84
|
监控 Linux Shell
Linux命令ionice:优化磁盘I/O优先级
`ionice`是Linux工具,用于调整进程的磁盘I/O优先级,改善系统响应。它设置三种I/O调度类:Idle(低优先级),Best-effort(默认)和Real-time(高优先级)。通过 `-c` 和 `-n` 参数分别设定调度类和优先级。示例:`ionice -c3 -n7 command`(低优先级I/O)和`ionice -c2 -p 1234`(改变PID为1234的进程为Idle类)。使用时注意平衡系统资源,避免干扰其他任务,并结合`iostat`、`iotop`监控性能。
|
12月前
|
数据采集 监控 异构计算
transformers+huggingface训练模型
本教程介绍了如何使用 Hugging Face 的 `transformers` 库训练一个 BERT 模型进行情感分析。主要内容包括:导入必要库、下载 Yelp 评论数据集、数据预处理、模型加载与配置、定义训练参数、评估指标、实例化训练器并开始训练,最后保存模型和训练状态。整个过程详细展示了如何利用预训练模型进行微调,以适应特定任务。
760 3
|
算法
|
IDE Java Apache
如何使用Maven管理Java项目依赖
如何使用Maven管理Java项目依赖
|
SQL 安全 网络安全
漏洞扫描的主要功能是什么?
漏洞扫描工具识别并评估系统中的安全漏洞,包括发现缓冲区溢出、SQL注入等问题,进行漏洞分类、风险评估和生成报告。重要的是选择合适工具,设定扫描参数,定期更新规则,并与其他安全措施结合使用。定期扫描能降低被攻击风险,提升系统安全性。
漏洞扫描的主要功能是什么?
下一篇
开通oss服务