赞
踩
在消息队列 RocketMQ 版中,Topic 与 Tag 都是业务上用来归类的标识,区分在于 Topic 是一级分类,而 Tag 可以理解为是二级分类。您可通过本文了解如何搭配使用 Topic 和 Tag 来实现消息过滤。
Topic 和 Tag 的定义如下:
Topic
消息主题,通过 Topic 对不同的业务消息进行分类。
Tag
消息标签,用来进一步区分某个 Topic 下的消息分类,消息从生产者发出即带上的属性。
Topic 和 Tag 的关系如下图所示。
您可能会有这样的疑问:到底什么时候该用 Topic,什么时候该用 Tag?
建议您从以下几个方面进行判断:
总的来说,针对消息分类,您可以选择创建多个 Topic,或者在同一个 Topic 下创建多个 Tag。但通常情况下,不同的 Topic 之间的消息没有必然的联系,而 Tag 则用来区分同一个 Topic 下相互关联的消息,例如全集和子集的关系、流程先后的关系。
以天猫交易平台为例,订单消息和支付消息属于不同业务类型的消息,分别创建 Topic_Order 和 Topic_Pay,其中订单消息根据商品品类以不同的 Tag 再进行细分,列如电器类、男装类、女装类、化妆品类等被各个不同的系统所接收。
通过合理的使用 Topic 和 Tag,可以让业务结构清晰,更可以提高效率。
如何通过 Tag 实现消息过滤,请参见消息过滤。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。