RocketMQ
文章平均质量分 85
RocketMQ相关技术文章
每天都要进步一点点
工作日常技术学习、积累、总结
展开
-
RocketMQ(十六)RocketMQ消息存储机制
目录一、概述二、CommitLog文件三、ConsumerQueue消费逻辑队列四、IndexFile索引文件五、页缓存与内存映射一、概述RocketMQ中的消息存储在本地文件系统中,主要是由ConsumeQueue和CommitLog配合完成的,消息真正的物理存储文件是CommitLog,ConsumeQueue是消息的逻辑队列,类似数据库的索引文件,存储的是指向物理存储的地址。每个Topic下的每个Message Queue都有一个对应的ConsumeQueue文件。来看原创 2022-04-29 15:36:39 · 2105 阅读 · 0 评论 -
RocketMQ(十五) RocketMQ如何保证消息的可靠性?
目录一、概述二、发送端消息可靠性三、Broker存储端消息可靠性四、消费端消息可靠性五、总结一、概述我们知道,网络传输是不可靠的,在分布式系统中,经常存在网络闪断的情况,所以消息中间件都存在消息丢失的风险,各种消息中间件也提供了重试机制,保证消息至少传输成功一次,当然RocketMQ也不例外。今天我们就来看看RocketMQ是如何最大限度的保证消息不丢失的呢?先来看看影响RocketMQ消息可靠性的几种情况:Broker非正常关闭 Broker异常Crash(宕机)原创 2022-04-29 15:26:34 · 7916 阅读 · 0 评论 -
RocketMQ(十四)RocketMQ消息重试机制
目录一、概述二、生产端的消息重试三、消费端的消息重试四、消息重试次数五、消息重试配置六、消息重试原理一、概述由于网络抖动、服务宕机等一些不确定的因素,RocketMQ在发送消息的时候很有可能出现消息发送或者消费失败的问题。Consumer消费消息失败通常可以认为有以下几种情况:由于消息本身的原因,例如反序列化失败,消息数据本身无法处理(例如话费充值,当前消息的手机号被注销,无法充值)等。这种错误通常需要跳过这条消息,再消费其它消息,而这条失败的消息即使立刻重试消费,9原创 2022-04-29 15:12:53 · 12204 阅读 · 1 评论 -
RocketMQ(十三) RocketMQ负载均衡
目录一、什么是负载均衡二、Producer发送消息负载均衡三、Consumer订阅消息负载均衡四、Rebalance机制五、Queue分配算法一、什么是负载均衡负载均衡(LB,Load Balance),是一种技术解决方案。用来在多个资源(一般是服务器)中分配负载,达到最优化资源使用,避免单台服务器过载。RocketMQ中的负载均衡,主要可以分为Producer发送消息的负载均衡和Consumer订阅消息的负载均衡。下面我们分别进行分析。二、Producer发送消息负载均原创 2022-04-07 08:00:00 · 7340 阅读 · 2 评论 -
RocketMQ (十二)RocketMQ消费幂等
目录一、什么是消费幂等?二、消息重复的场景分析三、如何实现消费幂等?一、什么是消费幂等?幂等:如果有一个操作,多次执行与一次执行所产生的影响是相同的,我们就称这个操作是幂等的。基于上述的概念,结合消息消费的场景,我们能够总结出消息幂等的概念:如果消息重试多次,消费者端对该重复消息消费多次与消费一次的结果是相同的,并且多次消费没有对系统产生副作用,那么我们就称这个过程是消息幂等的。在互联网应用中,尤其在网络不稳定的情况下,消息很有可能会出现重复发送或重复消费。如果重复的消息原创 2022-04-04 08:00:00 · 2197 阅读 · 0 评论 -
RocketMQ(十一)RocketMQ消息过滤
目录一、概述二、Tag过滤三、根据自定义属性进行过滤 (SQL过滤)一、概述RocketMQ的消费者可以根据Tag进行消息过滤,也支持自定义属性过滤。消息过滤目前是在Broker端实现的,优点是减少了对于Consumer无用消息的网络传输,缺点是增加了Broker的负担、而且实现相对复杂。RocketMQ支持两种方式的消息过滤。一种是Tag过滤,另外一种是SQL过滤。下面我们分别介绍一下。二、Tag过滤在大多数情况下,Tag是个简单而有用的设计,其可以来选择您想要的消息。下面我们原创 2022-04-02 08:15:00 · 2065 阅读 · 1 评论 -
RocketMQ(十)RocketMQ事务消息
一、RocketMQ事务消息概要RocketMQ事务消息(Transactional Message)是指应用本地事务和发送消息操作可以被定义到全局事务中,要么同时成功,要么同时失败。RocketMQ的事务消息提供类似 X/Open XA 的分布式事务功能,通过事务消息能达到分布式事务的最终一致。Apache RocketMQ在4.3.0版中已经支持分布式事务消息,采用了2PC(两阶段提交)+ 补偿机制(事务状态回查)的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败的消息,.原创 2022-03-31 07:00:00 · 15890 阅读 · 7 评论 -
RocketMQ(九)RocketMQ顺序消息
目录一、什么是顺序消息?二、顺序消息的原理三、全局顺序消息四、局部顺序消息五、顺序消息缺陷一、什么是顺序消息?消息有序指的是,消费者端消费消息时,需按照消息的发送顺序来消费,即先发送的消息,需要先消费(FIFO)。举个容易理解的例子:通常创建订单后,会经历一系列的操作:【订单创建 -> 订单支付 -> 订单发货 -> 订单配送 -> 订单完成】。在创建完订单后,会发送五条消息到MQ Broker中,消费的时候要按照【订单创建 -> 订单支付 -&原创 2022-03-29 13:30:00 · 6650 阅读 · 4 评论 -
RocketMQ(八)RocketMQ延时消息
目录一、什么是延时消息二、延时消息等级三、延时消息使用场景四、延时消息示例五、延时消息实现原理一、什么是延时消息当消息写入到Broker后,不能立刻被消费者消费,需要等待指定的时长后才可被消费处理的消息,称为延时消息。二、延时消息等级RocketMQ延时消息的延迟时长不支持随意时长的延迟,是通过特定的延迟等级来指定的。默认支持18个等级的延迟消息,延时等级定义在RocketMQ服务端的MessageStoreConfig类中的如下变量中:// MessageStor原创 2022-03-27 10:00:00 · 26411 阅读 · 2 评论 -
RocketMQ(七) RocketMQ的两种消费模式
目录一、概述二、集群消费三、广播消费一、概述RocketMQ主要提供了两种消费模式:集群消费以及广播消费。我们只需要在定义消费者的时候通过setMessageModel(MessageModel.XXX)方法就可以指定是集群还是广播式消费,默认是集群消费模式,即每个Consumer Group中的Consumer均摊所有的消息。下面我们通过简单的示例演示一下。二、集群消费一个 Consumer Group 中的 Consumer 实例平均分摊消费消息。使用方法:setMess原创 2022-03-24 13:00:00 · 10104 阅读 · 3 评论 -
RocketMQ(六)多Master多Slave模式-异步复制集群搭建
目录一、概述二、环境准备三、总体架构图四、配置RocketMQ-Master01(主1 - 10.0.90.59)五、配置RocketMQ-Master02(主2 - 10.0.90.144)六、配置RocketMQ-Slave01(从1 - 10.0.91.8)七、配置RocketMQ-Slave02(从2 - 10.0.91.49)八、启动NameServer集群九、启动Broker集群十、启动可视化控制台一、概述前面一篇文章我们介绍了RocketMQ..原创 2022-03-22 10:57:25 · 5733 阅读 · 1 评论 -
RocketMQ(五)RocketMQ集群架构
一、RocketMQ集群架构RocketMQ网络部署图如下:RocketMQ中主要涉及到四种角色:NameServer注册服务器、Broker服务器、Producer生产者、Consumer消费者。每种角色都可以单独搭建集群,下面我们分别介绍一下NameServer 集群、Broker 集群、Producer 集群、Customer 集群。(一)、NameServer 集群NameServer 是一个无状态的节点,可集群部署,节点都是各自独立的,无任何信息同步。(二)、 Broker原创 2022-03-20 09:10:23 · 12022 阅读 · 0 评论 -
RocketMQ(四)Broker配置文件详解
# Licensed to the Apache Software Foundation (ASF) under one or more# contributor license agreements. See the NOTICE file distributed with# this work for additional information regarding copyright ownership.# The ASF licenses this file to You under th.原创 2022-03-20 08:23:39 · 7178 阅读 · 0 评论 -
RocketMQ(三)RocketMQ入门样例
目录一、概述二、Producer端发送同步消息三、Producer端发送异步消息四、Producer端单向发送消息五、消费消息一、概述RocketMQ支持发送三种类型的消息:同步消息、异步消息和单向消息。其中前两种消息是可靠的,因为会有发送是否成功的应答。接下来,我们将演示如何发送三种类型的消息,来快速熟悉RocketMQ的使用。首先需要加入RocketMQ的依赖,因为是Maven项目,所以在pom.xml中加入如下依赖:<dependency>.原创 2022-03-17 10:17:13 · 4013 阅读 · 0 评论 -
RocketMQ(二)Linux下安装RocketMQ 4.9.2
目录一、安装JDK1.8二、安装RocketMQ三、启动RocketMQ四、测试消息发送和消费五、关闭RocketMQ六、可视化管理页面安装七、遇到的问题一、安装JDK1.8RocketMQ是使用Java开发的,所以需要在Linux系统内安装JDK环境。主要有下面几个步骤:a. 从官网下载JDK1.8: Java Downloads | Oracle b. 将下载好的JDK安装包上传到Linux服务器中并解压缩,笔者这里是/java目录下[admin@admin原创 2022-03-14 13:34:48 · 4170 阅读 · 2 评论 -
RocketMQ(一)RocketMQ介绍及核心概念
一、概述消息中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ等。从这篇文章开始,将会通过几篇文章系统学习下RocketMQ。笔者之前也对RabbitMQ有过一些总结,感兴趣的朋友可通过https://blog.csdn.net/weixiaohuai/category_9058461.html?spm=1001.2014.3001.5482原创 2022-03-08 14:28:21 · 5919 阅读 · 4 评论