RocketMQ—引言

RocketMQ---引言

MQ介绍

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

MQMessage 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整体设计图如下:

相关推荐
huisheng_qaq11 小时前
【RocketMq源码篇-02】rocketmq集群搭建详细过程(docker版-2主2从)
docker·rocketmq·rocketmq集群·rocketmq源码·2主2从
无心水15 小时前
【分布式利器:RocketMQ】RocketMQ基本原理详解:架构、流程与核心特性(附实战场景)
中间件·架构·rocketmq·topic·rocketmq基本原理·电商金融mq·nameserver
小虾米 ~2 天前
RocketMQ DefaultMQPushConsumer vs DefaultLitePullConsumer
java·rocketmq·java-rocketmq
我命由我123452 天前
Java 开发 - 简单消息队列实现、主题消息队列实现
java·开发语言·后端·算法·java-ee·消息队列·intellij-idea
2***57422 天前
后端消息中间件对比,RabbitMQ与RocketMQ
分布式·rabbitmq·rocketmq
sg_knight2 天前
RabbitMQ 中的预取值(prefetch)详解:如何真正提升消费端性能?
java·spring boot·spring·spring cloud·消息队列·rabbitmq·预取值
无心水3 天前
【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等方案,彻底解决重复消费(附代码实操)
网络·数据库·rocketmq·java面试·消息幂等·重复消费·分布式利器
信仰_2739932435 天前
RocketMQ事务消息实现订单创建 + 扣减库存
java·rocketmq·java-rocketmq
whltaoin6 天前
【微服务中间件】RabbitMQ 多平台安装搭建实践指南(Windows_macOS_Ubuntu_Docker 全场景)
微服务·中间件·消息队列·rabbitmq·多平台
原来是好奇心6 天前
消息队列终极选型:RabbitMQ、RocketMQ、Kafka与ActiveMQ深度对比
分布式·kafka·rabbitmq·rocketmq·activemq·mq