消息队列RocketMQ支持通过Tag(标签)对消息进行过滤,以保证这可以只消费其关注的消息类型。
Topic与Tag的关系
在消息队列RocketMQ中,Topic与Tag都可在实际业务中用于消息的分类,Topic可以理解为一级分类,Tag为二级分类,通过合理使用Topic和Tag过滤消息,可以使业务系统更加清晰。
Topic:消息主题,用户在使用消息队列进行消息发送消费时需要首先创建Topic,可根据不同的业务消息分类创建不同的Topic;
Tag:消息标签,用户在发送消息时可发送带有Tag属性的消息体,用于进一步区分某Topic下不同用途的消息。
消息过滤使用场景
以为例,在资源管理平台类系统中,可能包含计算、存储、网络等多种类型的资源,这些消息将会发送至resource_management_topic中,被不同的管理模块订阅并消费:
计算资源模块:只需订阅Tag为compute的消息;
网络资源模块:只需订阅Tag为network的消息;
存储资源模块:只需订阅Tag为storage的消息;
资源统计类模块:需要订阅所有资源类型的消息;