【RocketMQ】各组件概念介绍

【引言】

关于RocketMQ的安装教程和Spring Boot的集成,在前面的两篇博客中做了相关总结。本篇博客主要总结RocketMQ中的相关组件,这也是了解其原理必须要知道的理论知识。

【核心概念】

  • 生产者(Producer)

生产者是指将由业务系统产生的消息发送到brokers中。RocketMQ提供了多种发送消息的模式:同步的、异步的和单向的。

  • 生产组(Producer Group)

具有相同角色的生产者组合在一起。如果原始生产者在事务之后崩溃,在相同组中的生产者的另一个不同的实例则可以通过broker联系,提交或回滚事务。

  • 消费者(Consumer)

消费者从brokers中拉取消息,并且将消息传递给业务系统。从用户应用的角度看,提供了两种类型的消费者:

  1. 拉取(PullConsumer):主动的从brokers拉取消息,一旦有消息,业务系统便会开始消费进程。

  2. 推送(PushConsumer):实际上封装了拉取消息,在内部进行消费进程,并且维持其他工作;为用户留下接口,以实现消息到达时被执行。

  • 消费组(Consumer Group)

类似生产组,具有相同角色的消费者组合在一起叫做消费组。在消息消费方面达到负载均衡和容错目标非常简单。

  • 主题(Topic)

主题是生产者生产消息和消费者消费消息的类别。主题与生产者和消费者的关系非常松散。具体而言,主题可能有0个、1个或者多个生产者向其发送消息;

相反地,一个生产者可以向不同主题发送消息。从消费者的角度,一个主题可能被0个、1个或者多个消费者组订阅。类似地,消费者组可以订阅一个或多个主题,只需要该组的实例保证订阅一致即可。

  • 消息(Message)

消息就是被传递的信息。消息必须要有一个主题,可以将其解释为邮件地址。消息还可以有可选的标记及键值对。比如说,我们可以为消息设置一个业务key值,从而在开发过程中用来在broker服务器中查找问题。

  • 消息队列(Message Queue)

主题可以被分为一个或多个子主题,称为消息队列。

  • 标记(Tag)

标记,换而言之子主题,给用户提供更大的便利性。有了标记,来自同一业务模块具有不同目的的消息可以具有相同的主题和不同的标记。标记有利于保持代码的清晰和连贯,并且标记也方便了RocketMQ提供的查询系统的使用。

  • 经纪人(Broker)

RocketMQ系统中重要的组成部分。它用来接收生产者收到的消息,存储消息并且准备处理消费者的拉取请求。它也存储消息的元数据,例如消费组,消费进程的偏移量以及主题/队列信息。

  • 名称服务器(Name Server)

用来充当路由信息提供者。消费者和生产者客户端查找主题以查找相应的代理列表。

  • 消息模式(Message Model)
  1. 集群模式(Clustering)

在Clustering模式下,同一个ConsumerGroup(GroupName)里的每个Consumer只消费所订阅消息的一部分内容,同一个ConsumerGroup里所有的Consumer消费的内容合起来才是所订阅Topic内容的整体,从而达到负载均衡的目的。

  1. 广播模式(Broadcasting)

在Broadcasting模式下,同一个ConsumerGroup里的每个Consumer都能消费到所订阅Topic的全部消息,也就是一个消息会被多次分发,被多个Consumer消费。

  • 消息顺序(Message Order)

当使用DefaultMQPushConsumer时,可以按顺序或同时使用消息。

  1. 顺序(Orderly):按顺序消费消息意味着是按照生产者发送的顺序进行消费。如果使用全局顺序场景,必须确保使用该主题的只有一个消息队列。

注意:如果指定了是有序消费,那么最大并发量是消费者组订阅的消息队列的数量。

  1. 并发(Concurrently):如果指定了并发消费消息,最大的并发量是为每个使用者客户端指定的线程池的数量。

注意:消息的顺序在此模式下是不能保证的。

【总结】

有了实际应用的集成过程,对于这些概念也是比较容易理解的。相互地,理解了这些概念,结合实际应用的场景,也就能够选择合适的模式。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值