首页 > 其他分享 >RocketMQ—引言

RocketMQ—引言

时间:2024-01-28 19:22:52浏览次数:22  
标签:队列 Broker Queue MQ 消息 引言 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内部简易示意图如下:

Broker内部示意图

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

RocketMQ整体设计图如下:

ROcketMQ设计图

标签:队列,Broker,Queue,MQ,消息,引言,RocketMQ
From: https://www.cnblogs.com/nicaicai/p/17993158

相关文章

  • RocketMQ
    领域模型https://rocketmq.apache.org/zh/docs/domainModel/01main/概述ApacheRocketMQ是一款典型的分布式架构下的中间件产品,使用异步通信方式和发布订阅的消息传输模型。通信方式和传输模型的具体说明,请参见下文通信方式介绍和消息传输模型介绍。ApacheRocketMQ产品具......
  • rocketmq--push、poll、simple模型的区别
    RocketMQ提供了几种不同类型的消费者,以满足不同使用场景的需求。以下是RocketMQ中三种主要消费者类型的原理和区别:PushConsumer(推模式消费者)原理:PushConsumer是一种被动接收消息的消费者。Broker(消息服务器)将消息推送给消费者,消费者监听指定的Topic和Tag。当消息到达时,Broker......
  • rocketmq--死信队列
    在RocketMQ中,死信队列(DeadLetterQueue,DLQ)用于存放无法成功消费的消息。当消息重试消费次数超过设定的阈值后,消息将被转移到死信队列。使用SpringBoot集成RocketMQ时,可以通过以下步骤来处理死信队列中的消息。首先,在pom.xml中添加RocketMQSpringBootStarter的依赖:<dependen......
  • rocketmq--同步、异步、批量、事务消息demo
    在SpringBoot中使用RocketMQ进行同步和异步消息传输的关键是使用RocketMQTemplate类。下面是两个例子,分别演示了如何实现同步和异步消息传输。首先,确保你已经添加了RocketMQ的依赖到你的pom.xml中,如下所示:<dependency><groupId>org.apache.rocketmq</groupId><artifa......
  • rocketmq--消息顺序消费demo
    在RocketMQ中,要实现消息的顺序消费,你需要确保以下几点:发送消息时,相同业务顺序的消息应该发送到同一个队列(MessageQueue)。消费者在消费时,应该使用顺序消费的方式。下面是一个使用SpringBoot和RocketMQ实现消息顺序消费的例子。添加依赖(pom.xml):<dependencies><de......
  • rocketmq--中的7种消息类型
    RocketMQ支持多种消息类型,每种类型都适用于不同的业务场景。下面是一些常见的消息类型及其特点:普通消息(NormalMessage):这是最基本的消息类型,没有任何特殊属性。生产者发送消息到指定的主题,消费者从主题订阅并消费这些消息。普通消息不保证严格的顺序。顺序消息(OrderedM......
  • rocketmq--有哪些关键名词
    RocketMQ是一个开源的分布式消息中间件,它具有高性能、高吞吐量、可扩展性和可靠性等特点。在使用RocketMQ时,你会遇到以下几个关键概念:NameServer(名称服务):NameServer是RocketMQ的注册中心,负责维护所有Broker的路由信息,供生产者和消费者查询。生产者和消费者启动时,需要连接到Nam......
  • rocketmq--两种消息模型的区别及demo
    RocketMQ主要支持两种消息模型:集群消费(Clustering)和广播消费(Broadcasting)。集群消费(Clustering):在集群消费模式下,同一个消费者组(ConsumerGroup)中的消费者实例平均分摊消费消息,即一个消息只会被消费者组中的一个消费者消费一次。这种模式适用于负载均衡场景,可以提高消费的并......
  • rocketmq--如何做路由发现、注册、剔除的
    RocketMQ的NameServer是一个轻量级的服务,负责维护关于Broker的路由信息和提供路由查询服务。以下是NameServer在Broker管理、路由发现、路由注册和路由剔除方面的工作机制:Broker管理:Broker在启动时会向所有的NameServer发送注册请求,包含自己的地址、存储的队列......
  • rocketmq--基础配置
    Springboot项目application.properties的基础配置server.port=8091#RocketMQNameServer地址rocketmq.name-server=公网IP:9876#生产者组名称rocketmq.producer.group=my-rocket-mq-grouprocketmq.producer.access-key=rocketmq2rocketmq.producer.secret-key=123456......