当前位置: 首页 > news >正文

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

目录

关键字摘要

Q1:RocketMQ是什么?

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

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

Q4:RocketMQ有哪些核心概念?

总结

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的基本架构是怎样的?

图片

RocketMQ 4.x基本架构

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

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

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

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

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

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

图片

RocketMQ 5.x基本架构

Q4:RocketMQ有哪些核心概念?

图片

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)等核心概念。
http://www.lryc.cn/news/104075.html

相关文章:

  • 递归竖栏菜单简单思路
  • 组件化、跨平台…未来前端框架将如何演进?
  • vue 修改端口号
  • hive的metastore问题汇总
  • 【phaser微信抖音小游戏开发003】游戏状态state场景规划
  • 字符串性能优化
  • 从零开始理解Linux中断架构(23)中断运行临界区和占先调度
  • (3)Gymnasium--CartPole的测试基于DQN
  • 利用sklearn 实现线性回归、非线性回归
  • Java课题笔记~ MyBatis入门
  • Activity的自启动模式
  • 53数组的扩展
  • Rust调试【三】
  • uniApp 对接安卓平板刷卡器, 读取串口数据
  • Go new 与 make
  • centos系统离线安装k8s v1.23.9最后一个版本并部署服务,docker支持的最后一个版本
  • (学习笔记-内存管理)如何避免预读失效和缓存污染的问题?
  • 【arthas】入门与实战(一)
  • vim、awk、tail、grep的使用
  • vue拖拽改变宽度
  • 华为数通HCIA-ARP(地址解析协议)详细解析
  • 【Python机器学习】实验04(1) 多分类(基于逻辑回归)实践
  • 【ChatGLM_01】ChatGLM2-6B本地安装与部署(大语言模型)
  • 谷歌Tsunami(海啸)扫描器搭建扩展使用教程
  • 诚迈科技承办大同首届信息技术产业峰会,共话数字经济崭新未来
  • 【Python】Python使用TK实现动态爱心效果
  • Unity3d C#快速打开萤石云监控视频流(ezopen)支持WebGL平台,替代UMP播放视频流的方案(含源码)
  • 【Android】APP启动优化学习笔记
  • docker的使用
  • iOS使用Rust调研