分布式消息服务ROCKETMQ版-通过Topic和Tag实现消息分类:方案概述

时间:2024-10-15 17:23:21

方案概述

Topic是消息关联的基础逻辑单元,消息的生产与消费围绕着Topic进行。每个Topic包含若干条消息,每条消息只能属于一个Topic。

Tag是消息的标签,用于在同一Topic下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一Topic下设置不同的标签。标签能够有效保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统。消费者可以根据Tag实现对不同Topic的不同消费逻辑,实现更好的扩展性。

Topic是消息的一级分类,Tag是消息的二级分类,关系如下图。

应用场景

在实际业务中,通过合理使用Topic和Tag,可以使业务结构更清晰,提高效率。可以根据如下几方面判断Topic和Tag的具体使用场景:

  • 根据消息类型判断:RocketMQ的消息可分为普通消息、顺序消息、定时/延迟消息、事务消息,不同类型的消息需要用不同的Topic来区分,无法通过Tag区分。
  • 根据消息优先级判断:在业务中紧急程度高和紧急程度一般的消息用不同的Topic来区分,方便后续业务处理。
  • 根据业务关联性判断:业务逻辑上不相关的消息用不同Topic来区分,业务逻辑上强关联的消息发送到同一Topic下,并用Tag进行子类型或流程先后关系的区分。
support.huaweicloud.com/bestpractice-hrm/hrm-bp-003.html