3分钟白话RocketMQ系列—— 核心概念

简介: 3分钟白话RocketMQ系列—— 核心概念

白话3分钟,快速了解RocketMQ基础,包括适用场景,以及基本概念。

看完如果不了解,欢迎来打我。


关键字摘要


  • 低延迟、高可用、高可靠、高并发 的消息中间件
  • 适合在线业务
  • 分为producer、consumer、nameserver、broker等角色
  • 另外还有主题(Topic)、队列(MessageQueue)、消息(Message)、消费者组(ConsumerGroup)、订阅关系(Subscription)等核心概念


Q1:RocketMQ是什么?


RocketMQ是一个开源的分布式消息中间件。它是一种 低延迟、高可用、高可靠、高并发 的消息队列系统,用于在分布式系统中进行异步通信。


Q2: 作为消息中间件,RocketMQ和kafka有什么区别?


作为消息中间件,RocketMQ和kafka的「消息模型」上比较相似,都有 生产、存储(消息堆积)、消费 三大部分。

主要区别还是使用场景。

RocketMQ比kafka多了一些业务特性,比如 定时消息、延迟消息、事务消息(RocketMQ和kafka的不是同一个概念)、广播消息、消息轨迹 等,所以我们一般把RocketMQ用在在线业务场景中。

而kafka由于大数据生态完善,在系统间的数据流管道、实时数据处理等场景中依旧占据优势。

当然,RocketMQ 5.x版本进一步强化了自身在 事件、流处理 场景上的结合。不过目前观察,主要还是阿里云自身在做相关生态建设和应用,业界落地上还不算主流。


Q3: RocketMQ的基本架构是怎样的?


640.png

RocketMQ 4.x基本架构

RocketMQ 4.x版本中,主要分为4个角色:

  • producer:发布消息的角色。Producer通过负载均衡模块选择相应的 Broker 集群队列进行消息投递。
  • consumer:消息消费的角色。提供实时订阅消息的能力。
  • broker:Broker主要负责消息的存储、投递和查询以及服务高可用保证。
  • nameserver:NameServer是一个简单的 Topic 路由注册中心。支持 Topic、Broker 的动态注册与发现。

RocketMQ 5.x 为了更好适应云原生环境下的「存算分离」,在部署架构上做了一个变化。

新增无状态的代理模块Proxy,作为「计算层」,将 Broker 原来的协议适配、权限管理、消息管理等计算功能抽离到了代理模块中。

而Broker 则专注于「存储层」,主要负责消息存储功能。

这样在云环境下可以更好地进行资源调度。

640.png

RocketMQ 5.x基本架构


Q4:RocketMQ有哪些核心概念?


640.png

RocketMQ核心概念

前面提到过,消息中间件的逻辑架构上比较相似,都有消息 生产、存储(消息堆积)、消费 三大部分。

就RocketMQ而言,核心概念也是围绕这三个部分展开,7个核心概念:

  • 消息生产:
  • 生产者(Producer):RocketMQ 中用于产生消息的实体。
  • 消息存储
  • 主题(Topic):RocketMQ 消息传输和存储的分组容器,主题内部由多个队列(MessageQueue)组成。
  • 队列(MessageQueue):RocketMQ 消息传输和存储的实际单元容器,类比于kafka中的分区。
  • 消息(Message):RocketMQ 的最小传输单元。在初始化发送和完成存储后即不可变。
  • 消息消费
  • 消费者分组(ConsumerGroup):RocketMQ 发布订阅模型中定义的独立的消费身份分组,用于统一管理底层运行的多个消费者(Consumer)。
  • 消费者(Consumer):RocketMQ 消费消息的运行实体。消费者必须被指定到某一个消费组中。
  • 订阅关系(Subscription):RocketMQ 发布订阅模型中消息过滤、重试、消费进度的 持久化「规则配置」。消费组通过定义订阅关系控制指定消费组下的消费者如何实现消息过滤、消费重试及消费进度恢复等。

总结


  • 低延迟、高可用、高可靠、高并发的消息中间件
  • 适合在线业务
  • 分为producer、consumer、nameserver、broker等角色
  • 另外还有主题(Topic)、队列(MessageQueue)、消息(Message)、消费者组(ConsumerGroup)、订阅关系(Subscription)等核心概念

3分钟到了吗?应该对RocketMQ有初步了解了吧。

如果还想了解更多,欢迎关注下一期内容。


往期热门笔记合集推荐:

  • HBase原理与实战笔记合集
  • MySQL实战笔记合集
  • Canal/Otter源码与实战笔记合集
  • Java实战技巧笔记合集
相关实践学习
消息队列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
目录
相关文章
|
6月前
|
消息中间件 中间件 数据安全/隐私保护
RabbitMQ 的核心概念
RabbitMQ 的核心概念
42 2
|
3月前
|
消息中间件 存储 网络协议
消息中间件RabbitMQ---概述和概念 【一】
该文章提供了对消息中间件RabbitMQ的全面概述,包括其核心概念、工作原理以及与AMQP和JMS的关系。
消息中间件RabbitMQ---概述和概念 【一】
|
4月前
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
120 2
|
4月前
|
消息中间件 NoSQL 关系型数据库
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
130 1
|
4月前
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
68 1
|
5月前
|
消息中间件 存储 中间件
【主流技术】聊一聊消息队列 RocketMQ 的基本结构与概念
2.6Broker 代理服务器(Broker)是消息中转角色,负责存储消息、转发消息。代理服务器在 RocketMQ 系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。 2.7Pull Consumer 拉取式消费(Pull Consumer)是 Consumer 消费的一种类型,也是默认的类型。下游应用系统通常主动调用 Consumer 的拉消息方法从 Broke r服务器拉消息,即主动权由下游应用控制。一旦获取了批量消息,应用就会启动消费过程。
|
5月前
|
消息中间件 存储 物联网
RocketMQ基础概念
RocketMQ基础概念
56 1
|
6月前
|
消息中间件 存储 Apache
RocketMQ实战教程之常见概念和模型
Apache RocketMQ 实战教程介绍了其核心概念和模型。消息是基本的数据传输单元,主题是消息的分类容器,支持字节、数字和短划线命名,最长64个字符。消息类型包括普通、顺序、事务和定时/延时消息。消息队列是实际存储和传输消息的容器,是主题的分区。消费者分组是一组行为一致的消费者的逻辑集合,也有命名限制。此外,文档还提到了一些使用约束和建议,如主题和消费者组名的命名规则,消息大小限制,请求超时时间等。RocketMQ 提供了多种消息模型,包括发布/订阅模型,有助于理解和优化消息处理。
|
6月前
|
消息中间件 Java API
RabbitMQ(基础概念, 简单使用)(下)
RabbitMQ(基础概念, 简单使用)
52 0
|
6月前
|
消息中间件 存储 Java
RabbitMQ(基础概念, 简单使用)(中)
RabbitMQ(基础概念, 简单使用)
37 0