RocketMQ核心概念

简介: RocketMQ核心概念

上次小面带大家来学习了RocketMQ的入门使用,还没有看过的小伙伴建议先看一遍。

今天小面带大家学习RocketMQ常用的核心概念,主要包含一下几个部分:

  1. RocketMQ消费模型
  2. TOPIC的作用
  3. 队列
  4. 生产者
  5. 消费者
  6. 消费者组

一.RocketMQ消费模型

订阅模式:消息由生产者发送后,消费者通过订阅消息就可以消费消息,同一条消息可以由被多个消费者订阅,并消费。

特点:

  • 一条消息可以被多个消费者消费
  • 不同的消费者相互独立,互不影响

二. TOPIC,队列,消费者组

TOPIC: 生产者发送的每条消息都带上了TOPIC(主题),消费者通过订阅TOPIC来消费自己感兴趣的消息。

队列:TOPIC包含了多个队列,生产者轮训topic对应的队列来发送消息(默认策略),也可以自定义发送策略。mq为了保证单个队列消费消息的有序性,一个队列只能被同一个消费者组的一个消费者消费,多个队列是为了提高消费的并发度,从而提高消费的性能。

消费者组:消费者组包含多个消费者,多个消费者共同消费同一个topic上的消息,因为一个队列只能被同一个消费者组的消费者独占,所以消费者数要小于等于topic的队列数才能提高并发的数量,否则再增加消费者数也没有用。比如TopicA的队列数是4,如果消费者组的消费者实例数为5,就代表有一个消费者实例是没有获取到队列的,不会消费到消息,所以对消费的性能提高没有帮助,这个我们增加消费者实例时候需要特别注意。

消费模式:RocketMQ有两种消费模式,

  1. 集群消费:同一个消费者组的所有消费者共同消费topic下的消息,不会重复消费。
  2. 广播消费:同一个消费者组的所有消费者都消费topic下所有的消息,每个消费者独立消费。

三.生产者和消费者

生产者:消息的生成方,可以发送普通消息,批量消息,事务消息;支持同步发送和异步发送。生成消息时,要指定topic和tag,tag用于更细粒度的用于消费过滤。可以指定发送的队列,可以设置keys用于回溯消息,对于排查消息的流向很有帮助。

消费者:消息的消费方,消息支持主动pull模式和被动push模式,pull模式要自己控制消息的拉取和偏移量的提交。push模式只需要定义消息消费的回调方法,拉取和偏移量的控制都由rocket客户端内部封装好了。

四. 小结

今天我们来学习了RocketMQ的核心概念以及他们之间的关系,下节我们来学习一下这些概念是怎么跟消费者和生产者对应起来的,以及在工作中需要注意的地方。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
9月前
|
消息中间件 中间件 数据安全/隐私保护
RabbitMQ 的核心概念
RabbitMQ 的核心概念
52 2
|
6月前
|
消息中间件 存储 网络协议
消息中间件RabbitMQ---概述和概念 【一】
该文章提供了对消息中间件RabbitMQ的全面概述,包括其核心概念、工作原理以及与AMQP和JMS的关系。
消息中间件RabbitMQ---概述和概念 【一】
|
7月前
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
206 2
|
7月前
|
消息中间件 NoSQL 关系型数据库
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
201 1
|
7月前
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
93 1
|
8月前
|
消息中间件 存储 中间件
【主流技术】聊一聊消息队列 RocketMQ 的基本结构与概念
2.6Broker 代理服务器(Broker)是消息中转角色,负责存储消息、转发消息。代理服务器在 RocketMQ 系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。 2.7Pull Consumer 拉取式消费(Pull Consumer)是 Consumer 消费的一种类型,也是默认的类型。下游应用系统通常主动调用 Consumer 的拉消息方法从 Broke r服务器拉消息,即主动权由下游应用控制。一旦获取了批量消息,应用就会启动消费过程。
101 0
|
8月前
|
消息中间件 存储 物联网
RocketMQ基础概念
RocketMQ基础概念
76 1
|
9月前
|
消息中间件 存储 Apache
RocketMQ实战教程之常见概念和模型
Apache RocketMQ 实战教程介绍了其核心概念和模型。消息是基本的数据传输单元,主题是消息的分类容器,支持字节、数字和短划线命名,最长64个字符。消息类型包括普通、顺序、事务和定时/延时消息。消息队列是实际存储和传输消息的容器,是主题的分区。消费者分组是一组行为一致的消费者的逻辑集合,也有命名限制。此外,文档还提到了一些使用约束和建议,如主题和消费者组名的命名规则,消息大小限制,请求超时时间等。RocketMQ 提供了多种消息模型,包括发布/订阅模型,有助于理解和优化消息处理。
|
9月前
|
消息中间件 Java API
RabbitMQ(基础概念, 简单使用)(下)
RabbitMQ(基础概念, 简单使用)
71 0
|
9月前
|
消息中间件 存储 Java
RabbitMQ(基础概念, 简单使用)(中)
RabbitMQ(基础概念, 简单使用)
52 0