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就都能分别收到了。

相关文章
|
5月前
|
JSON API 开发者
如何使用分类ID参数过滤搜索词推荐数据?
一、背景介绍 阿里巴巴中国站的搜索词推荐数据对于开发者来说具有重要的参考价值。通过使用获得搜索词推荐 API,开发者可以获取到用户在平台上的搜索行为数据,了解用户的需求和行为,优化产品和服务。在获取搜索词推荐数据的过程中,有时候需要对数据进行更精细的过滤和分析。其中,分类ID参数是一个非常重要的过滤条件,可以帮助开发者更好地筛选数据。本文将详细介绍如何使用分类ID参数过滤搜索词推荐数据,帮助读者更好地理解和使用该 API。
|
10月前
|
SQL 数据库
使用了 `table_B.status='0'` 来过滤右表的数据
使用了 `table_B.status='0'` 来过滤右表的数据
35 1
|
移动开发 前端开发 数据安全/隐私保护
标签 tag
学习tag标签
75 0
|
存储
CousumeQueue中tag的作用
问题的提出 存在就是有意义的,那么ConsumeQueue中存消息tag的hashcode是什么目的呢?
63 0
CousumeQueue中tag的作用
|
SQL 存储 消息中间件
RocketMQ的TAG过滤和SQL过滤机制
写作目的 项目中各个中台都使用同一个DB。而DB下会使用中间件监听binlog转换成MQ消息,而下游的各个中台去MQ去拿自己感兴趣的消息。
292 0
RocketMQ的TAG过滤和SQL过滤机制
|
Scala 开发者
集合过滤 Filter 操作 | 学习笔记
快速学习集合过滤 Filter 操作
179 0
|
API 开发者 索引
过滤 filter|学习笔记
快速学习过滤 filter。
57 0
过滤 filter|学习笔记
|
开发者 索引
过滤 filter | 学习笔记
快速学习过滤 filter
58 0
|
Linux Android开发 开发工具
Logcat多tag过滤
当Android设备通过usb连接成功后,在logcat中能看到很多log信息,但太多了很容易将我们关注的日志给淹没掉,所以我们需要过滤。如果接入了不同的SDK,那么log的tag可能会不同,所以有时需要显示多个tag。
1246 0
|
Java 开发者
自定义标签之SkipPageException —不再执行标签下面的内容 | 学习笔记
快速学习自定义标签之SkipPageException—不再执行标签下面的内容
自定义标签之SkipPageException —不再执行标签下面的内容 | 学习笔记