网站首页 > 博客文章 正文
白话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的基本架构是怎样的?
RocketMQ 4.x版本中,主要分为4个角色:
- producer:发布消息的角色。Producer通过负载均衡模块选择相应的 Broker 集群队列进行消息投递。
- consumer:消息消费的角色。提供实时订阅消息的能力。
- broker:Broker主要负责消息的存储、投递和查询以及服务高可用保证。
- nameserver:NameServer是一个简单的 Topic 路由注册中心。支持 Topic、Broker 的动态注册与发现。
RocketMQ 5.x 为了更好适应云原生环境下的「存算分离」,在部署架构上做了一个变化。
新增无状态的代理模块Proxy,作为「计算层」,将 Broker 原来的协议适配、权限管理、消息管理等计算功能抽离到了代理模块中。
而Broker 则专注于「存储层」,主要负责消息存储功能。
这样在云环境下可以更好地进行资源调度。
Q4: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有初步了解了吧。
如果还想了解更多,欢迎关注下一期内容。
猜你喜欢
- 2024-12-12 RocketMQ同一个消费者唯一Topic多个tag踩坑经历
- 2024-12-12 RocketMQ——RocketMQ搭建及问题解决
- 2024-12-12 腾讯云微服务正式发布RocketMQ Serverless版本
- 2024-12-12 RocketMQ如何避免未来再次发生积压
- 2024-12-12 rocketmq延迟消息实现原理(上)
- 2024-12-12 RocketMQ跨队列的顺序消费
- 2024-12-12 Kafka、RabbitMQ、RocketMQ、ActiveMQ 等多个分布式消息队列比较
- 2024-12-12 应如何在 Spring Boot 中使用 RocketMQ 实现批量消息消费?
- 2024-12-12 RocketMQ 5.0 多语言客户端的设计与实现
- 2024-12-12 从基础到进阶,一文详解RocketMQ事务消息,看完不会跪键盘
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)