RocketMQ—引言

RocketMQ---引言

MQ介绍

在学习RocketMQ之前,我们先来看以下MQ的意思。

MQ 是Message Queue的首字母缩写。

  • Message:意思为消息,在我们生活中可以是一句话/一个短信/一个邮件;在计算机领域,放到实际业务中,就是一条数据。
  • Queue:意思为队列。是一种先进先出的数据结构。

我们要学习MQ,重点是要学习Queue。

消息队列的结构如下图所示:

这里队列可以存储消息,存储消息又能干什么呢?

  • 如果A给B发送一个消息,有了消息队列的存在,A就可以把消息发到消息队列里,B在消息队列里取就可以,A可以去做其他事了,这样就可以起到异步的作用。
  • 如果有大量的请求来到我们的系统,我们的系统处理不过来,我们可以把这些请求放到消息队列里,就可以起到削峰限流的作用。
  • 如果B依赖A,我们可以把依赖的内容放到队列里,这样就可以起到解耦合的作用。

RocketMQ介绍

RocketMQ是阿里巴巴2016年MQ中间件,使用Java语言开发,RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。

具有以下特点:

  1. 能够保证严格的消息顺序;
  2. 提供丰富的消息拉取模式;
  3. 高效的订阅者水平扩展能力;
  4. 实时的消息订阅机制;
  5. 亿级消息堆积能力。

其官网为: http://rocketmq.apache.org/

RocketMQ重要概念

Producer:消息的发送者,生产者;举例:发件人

Consumer:消息接收者,消费者;举例:收件人

Broker:暂存和传输消息的通道;举例:快递

NameServer:管理Broker;举例:各个快递公司的管理机构 相当于broker的注册中心,保留了broker的信息

Queue:队列,消息存放的位置,一个Broker中可以有多个队列

Topic:主题,消息的分类

ProducerGroup:生产者组 。

Broker内部简易示意图如下:

topic是一个逻辑上的概念,每个topic中有多个queue。

RocketMQ整体设计图如下:

相关推荐
做个文艺程序员13 小时前
MQ第12篇:AI原生消息架构演进:从MQ到事件驱动的全链路设计
架构·消息队列·wpf·事件驱动架构·ai-native·cqrs
我不会起名字3221 天前
Kafka 分区数到底设几个:吞吐量、顺序性与 rebalance 代价的取舍
kafka·消息队列·调优·分区
我不会起名字3222 天前
Go 写 Kafka 消费者:sarama 的 3 个坑与优雅退出写法
kafka·消息队列·go·sarama
Thomas.Sir2 天前
第31课:微服务消息驱动(RabbitMQ/RocketMQ)适配与解耦实战
微服务·rabbitmq·rocketmq
Knight_AL3 天前
本地服务连接 SaaS 测试环境实践:Docker 部署 Redis 与 RocketMQ 完成接口联调
redis·docker·rocketmq
jyOverQ3 天前
从零开始学 RocketMQ(一):基础概念、环境搭建与简单消息收发【保姆级教程】
java·rocketmq·java-rocketmq
做个文艺程序员4 天前
MQ第10篇:RAG与消息队列实战:Java构建AI客服系统的检索增强生成完整架构
人工智能·架构·rocketmq·向量数据库·rag·ai客服·spring ai
做个文艺程序员5 天前
MQ第07篇:Java SaaS多租户消息隔离实战:RabbitMQ VHost+RocketMQ Tag+命名空间架构
spring boot·rabbitmq·rocketmq·saas·多租户
j7~5 天前
【仿 RabbitMQ 项目】发布订阅消息队列 (篇八):交换机数据管理模块,分层类设计、SQLite 回调原理与代码实现
服务器·网络·数据库·消息队列·交换机·交换机数据管理·sqlite回调原理
阿里云云原生7 天前
RocketMQ for AI:基于 LiteTopic 的 Agent 异步通信架构与生产实践
rocketmq