![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ
文章平均质量分 84
稷下学员
小萌新一枚
展开
-
RocketMQ(十三)——实战-普通消息的发送与消费
文章目录普通消息消息发送同步发送消息异步发送消息单向发送消息代码示例导入RocketMQ的依赖定义同步消息的发送者定义异步消息的发送者定义消费者普通消息消息发送同步发送消息同步发送消息是指:Producer发出一条消息后,会在收到MQ返回的ACK后才发送下一条消息。该方式的消息可靠性最高,但是消息发送效率太低。异步发送消息异步发送消息是指:Producer发出消息后无须等待MQ返回ACK,直接发送下一条消息。该方式有一定可靠性,发送效率相对同步较高单向发送消息单向发送消息是指:Produ原创 2022-01-12 06:30:00 · 505 阅读 · 0 评论 -
RocketMQ(十二)消息堆积与消费延迟
RocketMQ(十二)消息堆积与消费延迟产生背景消息处理流程中,如果Consumer的消费速度跟不上Producer的发送速度,MQ中未处理的消息会越来越多,这部分消息就被称为 堆积消息。消息出现堆积会导致消费延迟,以下场景需要重点关注消息堆积和消息延迟的问题。业务系统上下游能力不匹配造成的持续堆积,且无法自行恢复业务系统对消息的消费实时性要求较高,即使是短暂的堆积造成的消费延迟也无法接受。Consumer使用长轮询Pull模式消费消息时,分为以下两个阶段:消息拉取Consumer通过原创 2022-01-11 06:30:00 · 4146 阅读 · 0 评论 -
RocketMQ(十一)——消费的幂等性
消费幂等定义当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的幂等:若某操作执行多次与执行一次对系统产生的影响是相同的,则称该操作是幂等的。在互联网应用中,尤其在网络不稳定的情况下,消息很有可能会出现重复发送或重复消费。如果重复的消息可能会影响业务处理,那么就应该对消息做幂等处理。常见消息重复的几种情况发送消息时重复当一条消息已被成功发送到Broker并完成持久化,此时出现了网络波动,从原创 2022-01-10 06:30:00 · 840 阅读 · 1 评论 -
RocketMQ(十)——Consumer消费进度(Offset)的管理
文章目录Consumer消费进度(Offset)的管理Offset本地管理模式Offset远程管理模式offset用途重试队列offset的同步提交与异步提交Consumer消费进度(Offset)的管理消费进度offset是用来记录每个Queue的不同消费者组的消费进度的。根据消费进度记录器的不用,可以分为两种模式:本地模式和远程模式Offset本地管理模式当消费模式为 广播消费时,offset使用本地模式存储。因为每条消息会被素有的消费者消费。每个消费者管理自己的消费进度,各个消费者之间原创 2021-12-31 07:00:00 · 4632 阅读 · 2 评论 -
RocketMQ(九)—Queue分配算法
Queue分配算法一个Topic中的Queue只能由Consumer Group中的一个Consumer进行消费,而一个Consumer可以同时消费多个Queue中的消息。常见的Queue分配算法有四种,分别是:平均分配策略、环形平均策略、一致性hash策略、同机房策略。这些策略是通过在创建Consumer时的构造器传进去的平均分配策略计算公式:avg=QueueCountConsumerCountavg=\frac{QueueCount}{ConsumerCount}avg=Consumer原创 2021-12-30 07:00:00 · 2414 阅读 · 0 评论 -
RocketMQ(八)——Rebalance机制介绍
Rebalance指的是:将下一个Topic的多个Queue在同一个Consumer Group中的多个Consumer间进行重新分配的过程,该机制是为了提升消息的并行消费能力原创 2021-12-29 16:50:04 · 900 阅读 · 2 评论 -
RocketMQ(七)——消息的消费
消息的消费消费的类型消费者从Broker中获取消息的方式有两种:Pull(拉取)方式和Push(推送)方式Pull方式Consumer主动从Broker中获取消息,主动权在Consumer。一旦获取了批量消息,就会启动消费过程缺点:实时性较弱,Broker中有了新的消息时,消费者不能及时发现并消费优点:便于应用控制消息的拉取Push方式Broker 收到消息后会主动推送给Consumer,该方式获取实时性较高该方式是典型的发布-订阅模式,即Consumer向其关原创 2021-12-28 08:54:48 · 1434 阅读 · 2 评论 -
RocketMQ(六)—IndexFile详解
IndexFile除了通过指定Topic进行消息消费外,RocketMQ还提供了根据Key进行消息查询的功能。该查询通过store/index/infdexFile进行索引实现的快速查询。这个indexFile中的索引数据是包含Key的消息被发送到Broker时写入的。如果消息中没有Key,不会被写入。索引条目结构每个Broker包含一组indexFile,每个indexFile都是以该indexFile被创建时的时间戳进行命名的。每个indexFile由三部分组成:indexHeader(原创 2021-12-26 07:30:00 · 3362 阅读 · 4 评论 -
RocketMQ(五)——工作原理
消息的生产消息的生产过程Producer可以将消息写入到某Broker中的某Queue中,经历了如下过程:Producer发送消息之前,会先向Name Server发出获取Topic的路由信息的请求Name Server返回该Topic的路由表及Broker列表Producer根据代码中指定的Queue选择策略,从Queue列表中选出一个队列,用于后续存储消息Producer对消息做一些特殊处理,例如:消息超过4M,会对其进行压缩Producer向选出的Queue所在Broker发出消息RP原创 2021-12-25 07:30:00 · 610 阅读 · 0 评论 -
RocketMQ(四)—— 单机与集群安装
文章目录单机安装前置工作硬件需求:软件需求:安装:1. 下载安装包2. 下载的包上传至Linux3. 解压4. 修改初始内存5.启动6. 发送、接收消息测试发送消息接收消息7. 关闭Server控制台的安装与启动1. 下载zip2. 修改配置3. 添加依赖4. 打包5. 启动6.访问集群安装架构安装步骤修改RocketMQ1配置文件修改broker-a.properties修改broker-b.properties其他配置克隆生成RocketMQ 2修改RocketMQ2 配置文件修改 broker-b.p原创 2021-12-24 08:33:37 · 347 阅读 · 10 评论 -
RocketMQ(三)—— 集群模式的说明
集群理论复制与刷盘策略复制:复制策略是Broker的Master与Slave间的数据同步方式。分为同步复制与异步复制:同步复制:消息写入master后,master会等待slave同步数据成功后才向producer返回成功ACK异步复制:消息写入master后,master立即向producer返回成功ACK,无需等待slave同步数据成功异步复制降低系统写入延迟,提高系统吞吐量刷盘:刷盘策略指的是broker中消息的落盘方式,即消息发送到broker内存后消息持久化到磁盘原创 2021-12-23 08:59:29 · 1355 阅读 · 3 评论 -
RocketMQ(二)——系统架构及基本知识
架构RocketMQ主要分为四部分组成:生产者(Producer)消息生产者,负责生产消息。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟RocketMQ中的消息生产者都是以生产者组(Producer Group)的形式出现的。生产者组是同一类生产者的集合,这类Producer发送相同Topic类型的消息。一个生产者组可以同时发送多个主题的消息。消费者(Consumer)消息消费者,负责消费消息。一个消息消费者会从Br原创 2021-12-20 08:48:21 · 523 阅读 · 0 评论 -
RocketMQ(一)——发展历程及基本概念
RocketMQ发展历程及基本概念RocketMQ简介RocketMQ是一个统一消息引擎、轻量级数据处理平台是阿里巴巴开源的消息中间件,2016年成为Apache孵化项目。2017年孵化成为Apache顶级项目(TLP)官网地址发展历程2007年,阿里开始五彩石项目,Notify作为项目中 交易核心消息流转系统应运而生,Notify系统是RocketMQ的雏形2010年,B2B大规模使用ActiveMQ作为阿里的消息内核,阿里需要一个具有 海量堆积能力的消息系统2011年初,kafka原创 2021-12-16 08:31:14 · 876 阅读 · 2 评论 -
一文看懂什么是MQ消息队列
文章目录概念用途流量削峰异步解耦数据收集常见MQRocketMQRabbitMQActiveMQKafkaMQ 常见协议JMSSTOMPAMQPMQTT概念MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据。一般消息的体量不会很大。用途流量削峰MQ可以将系统的超量请求暂存其中,以便系统后期可以慢慢进行处理,从而避免了请求的丢失或系统被压垮。防止因为短时请求超负荷导致服务器宕机。异步解耦上游系原创 2021-12-15 14:30:59 · 995 阅读 · 0 评论