RocketMQ Topic/Group/Tags介绍

Topic

功能介绍

  • Topic是RocketMQ里对消息的一级归类。
  • RocketMQ通过Topic完成消息的发布和订阅。消息生产者将消息发送到Topic中,而消息消费者则通过订阅该Topic来消费消息。

使用说明

  • Topic不能跨实例使用,例如在实例A中创建的Topic A不能在实例B中使用。

命名规范

  • Topic名称长度限制为3~64个字符,只能包含英文、数字、短划线(-)以及下划线(_)。
  • 如果Topic所在的实例有命名空间,则Topic的名称需要保证实例内唯一,不能和本实例下已有的Topic名称或Group ID重复;跨实例之间可以重名,例如实例A的Topic名称可以和实例B的Topic名称重复,也可以和实例B的Group ID重复。
  • 如果Topic所在的实例无命名空间,则Topic的名称需要保证跨实例和跨地域全局唯一,全局范围内不能和已有的Topic名称或Group ID重复。


Group

功能介绍

  • Group表示一类Producer或Consumer,这类Producer或Consumer通常生产或消费同一类消息,且消息发布或订阅的逻辑一致。
  • 使用RocketMQ进行消息收发,您需要创建Group ID用于标识同一类生产者实例或者同一类消费者实例。

使用说明

  • 同一个消费者Group ID下所有的Consumer实例必须保证订阅的Topic一致,并且也必须保证订阅Topic时设置的过滤规则(Tag)一致。
  • Group ID不能跨实例使用,例如实例A中创建的Group ID不能在实例B中使用。
  • RocketMQ支持HTTP协议和TCP协议的Group,不同的消费Group ID可以使用不同类型的协议消费消息,建议您分别为两种协议创建对应类型的Group ID。
  • 消费者必须有对应的Group ID,生产者不做强制要求。

命名规范

  • Group ID推荐以“GID_”或“GID-”开头,长度限制为2~64个字符,只能包含英文、数字、短划线(-)以及下划线(_)。
  • 如果Group所在实例有命名空间,则Group ID需要保证实例内唯一,不能和本实例下已有的Group ID或Topic名称重复;跨实例之间可以重名,例如实例A的Group ID可以和实例B的Group ID重复,也可以和实例B的Topic名称重复。
  • 如果Group所在实例无命名空间,则Group ID需要保证跨实例和跨地域全局唯一,全局范围内不能和已有的Group ID或Topic名称重复。

Tag

功能介绍

  • Tag标签是RocketMQ里对消息的二级归类。
  • RocketMQ支持为实例、Topic和Group添加标签。
  • 标签可以识别资源,您可以将作用相同的RocketMQ的资源通过标签进行归类,便于搜索和资源聚合。

使用说明

  • 标签都由一对键值对(Key-Value)组成。
  • 资源的任一标签的标签键(Key)必须唯一。例如,先添加了city:shanghai标签,后续如需添加city:shenzhen标签,需先删除city:shanghai标签。

使用限制

  • 键(Key)的最大长度:64个Unicode字符,区分大小写。
  • 值(Value)的最大长度:64个Unicode字符,区分大小写。
  • 每个资源的最大标签数为20。
  • 键(Key)不支持aliyun、acs:开头,不允许包含http://和https://,不允许为空字符串。
  • 值(Value)不允许包含http://和https://,允许为空字符串。
  • 每个地域中的标签信息不互通。例如在华东1(杭州)地域创建的标签在华东2(上海)地域不可见。

标签使用场景

若未设置标签,则Topic资源只能通过Topic名称进行管理和识别,随着业务增加,Topic数量越来越多,管理也会越来越困难。您可以根据业务场景,将Topic进行分类,给相同业务场景的Topic设置同样的标签,设置完成后,您可以根据设置的标签键和标签值查询任一场景的Topic,以便您快速筛选和管理Topic资源。

未设置标签:
topic1 物流系统
topic2 支付系统
topic3 积分系统
topic4 支付系统
topic5 物流系统
topic6 支付系统

加标签后:
system:logistics
topic1 物流系统
topic5 物流系统

system:pay
topic2 支付系统
topic4 支付系统
topic6 支付系统

system:integral
topic3 积分系统
 

你可能感兴趣的:(中间件,rocketmq,java,topic,group,tag)