什么是Topic

什么是topic

  • 标识消息分类: RocketMQ的主题用于对消息进行分类和组织。通过为不同类型的消息分配不同的主题,可以使消息更具可读性和可管理性。

  • 独立的消息队列:每个主题都有自己的消息队列,用于存储该主题下的消息。每个队列都可以并行地接收和处理消息,从而实现高吞吐量和负载均衡。

  • 消息路由:生产者在发送消息时指定目标主题,消费者则通过订阅感兴趣的主题来接收对应的消息。RocketMQ根据主题将消息路由到相应的队列上,然后再由消费者消费。

1 Topic与Tag最佳实践

在消息队列RocketMQ版中,Topic与Tag都是业务上用来归类的标识,区分在于Topic是一级分类,而Tag可以理解为是二级分类。您可通过本文了解如何搭配使用Topic和Tag来实现消息过滤。

Topic和Tag的定义如下:

Topic消息主题,通过Topic对不同的业务消息进行分类。Tag消息标签,用来进一步区分某个Topic下的消息分类消息从生产者发出即带上的属性。

2 到底什么时候该用Topic,什么时候该用Tag

  • 消息类型是否一致:如普通消息、事务消息、定时(延时)消息、顺序消息,不同的消息类型使用不同的Topic,无法通过Tag进行区分。

  • 业务是否相关联:没有直接关联的消息,如淘宝交易消息,京东物流消息使用不同的Topic进行区分;而同样是天猫交易消息,电器类订单、女装类订单、化妆品类订单的消息可以用Tag进行区分。

  • 消息优先级是否一致:如同样是物流消息,盒马必须小时内送达,天猫超市24小时内送达,淘宝物流则相对会慢一些,不同优先级的消息用不同的Topic进行区分。

  • 消息量级是否相当:有些业务消息虽然量小但是实时性要求高,如果跟某些万亿量级的消息使用同一个Topic,则有可能会因为过长的等待时间而"饿死”,此时需要将不同量级的消息进行拆分,使用不同的Topic。

总的来说,针对消息分类,您可以选择创建多个Topic,或者在同一个Topic下创建多个Tag。但通常情况下,不同的Topic之间的消息没有必然的联系,而Tag则用来区分同一个Topic下相互关联的消息,例如全集和子集的关系、流程先后的关系。

以天猫交易平台为例,订单消息和支付消息属于不同业务类型的消息,分别创建Topic_Order和Topic_Pay,其中订单消息根据商品品类以不同的Tag再进行细分,例如电器类、男装类、女装类、化妆品类等被各个不同的系统所接收。

通过合理的使用Topic和Tag,可以让业务结构清晰,更可以提高效率。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值