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 积分系统
 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: RocketMQ中的TopicTagGroup是消息传递中的三个重要概念。 Topic是消息发布的主题,可以理解为消息的分类,一个Topic可以包含多个TagTag是对消息进行更细粒度的分类,一个Topic下可以有多个Tag,每个Tag代表不同的子主题。 Group是消息消费者的分组,同一个Group下的消费者共同消费一个Topic下的消息,保证消息的负载均衡和高可用性。 ### 回答2: RocketMQ是一个分布式消息中间件系统,其中包括了三个关键概念:TopicTagGroup。 1. Topic Topic可以理解为消息分类,是消息的主题。一个Topic对应多个消息,同一个Topic内的所有消息有相同的结构和功能。因此,当我们需要消费一个Topic内的所有消息时,只需要订阅这个Topic即可。 在RocketMQ中,队列是建立在Topic之上的,每个Topic有多个队列用于存储消息。队列的数量由多种因素决定,比如消息的流量和消费者数量。为了保证消息的高效和负载均衡,每一个队列会尽可能的均衡地消费消息。 2. Tag Tag是为了更好地对消息进行分类而设计的。TagTopic的子集,一个Tag代表了一类消息。相同的消息可以有不同的Tag,相同的Tag只能对应一种消息。消息筛选会根据Tag进行,只有订阅了指定Tag的消费者才能收到相应的消息,实现了更精细的消息路由和高效的消费。 3. Group Group是消费者组的概念,RocketMQ采用广播方式将消息投递给订阅了相应TopicTag的消费者组内的所有消费者。一个消费者组内可以有多个消费者,消费者组是实现负载均衡和容灾的重要手段。 当一个消费者组中的某个消费者挂掉时,消息消费不会受到影响,RocketMQ会动态地将该消费者的消费任务分配给其他可用的消费者,以保证消息的正确消费。 综上所述,TopicTagGroupRocketMQ中非常重要的概念,它们在消息生产和消费中都扮演着重要的角色,对于使用者来说,掌握这些概念的含义和使用方法,能够更好地利用RocketMQ来实现自己的业务需求。 ### 回答3: RocketMQ是一个高性能、低延迟、分布式的消息队列系统。在使用RocketMQ时,常见的三个概念分别是topictaggroupTopic是指消息的主题或者类型,一个topic可以包含多条相关或者相似的信息,例如订单信息、用户行为等,并且可以被多个consumer同时消费。RocketMQtopic是由多个消息队列组成的,每个消息队列都是一个独立的消费者队列,其中的消息是FIFO(先进先出)的。 Tag则用于对消息进行更进一步的分类,对于同一个topic下的不同消息种类,可以使用tag来进行消费的区分。例如,在订单信息的topic下,可以使用tag“支付订单”、“取消订单”等来进行不同类型的消息消费。RocketMQtag是一个可选项,如果不设置则默认为“*”。 Group是指一个消息消费组,每个组中可以有多个消费者同时进行消息消费。RocketMQ消费者通过group来进行负载均衡和容错处理,即当一个组中的消费者出现问题时,其他消费者可以实现消息分担。需要注意的是,同一个topic下的每个group都是独立的消费者组,消费者组之间互相独立不会相互影响。 总之,RocketMQtopictaggroup是非常重要的概念,它们能够让我们更好地组织消息队列并更加灵活地进行消息消费。根据这些概念,我们可以实现更加高效、安全和可靠的消息传递。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值