RocketMQ
文章平均质量分 76
kk_lina
这个作者很懒,什么都没留下…
展开
-
SpringBoot基于AOP实现RocketMQ发送与消费
任何带有该注解的方法都会将发送mq。/*** @description: 带有该注解的方法将发送活动mq* @date 2022/9/1 下午2:10*/@Target({ElementType.PARAMETER, ElementType.METHOD}) //注解作用域@Retention(RetentionPolicy.RUNTIME)//注解运行时期}原创 2022-09-01 19:13:41 · 2932 阅读 · 0 评论 -
12.RocketMQ之消息重试机制+死信队列
一、消息的消费重试机制Producer对发送失败的消息进行重新发送的机制。采用同步或异步会重试,oneway消息发送方式发送失败没有重试机制。消息发送重试三种策略:同步发送失败策略对于普通消息,消息发送默认采用round-robin策略来选择所发送到的队列。如果发送失败,默认重试2次,但在重试时是不会选择上次发送失败的Broker,而是选择其他的Broker。同时,Broker还具有失败隔离功能,使Producer尽量选择未发生过发送失败的Broker作为目标Broker。如果超过重试次数,原创 2021-10-20 14:25:13 · 2931 阅读 · 1 评论 -
11.RocketMQ之事务消息+批量消息+消息过滤
一、事务消息如果扣款失败,取款依旧可能会成功,需要利用事务处理。事务管理器TM 向事物协调器TC发送指令,开启事务。工行系统发送一个给B赠款1万元的事物消息给TC。TC向Broker发送半事务消息prepareHalf,将消息M预提交到broker。此时建行系统看不到broker中的消息。Broker将预提交结果上报给TC。预提交失败,则TC会向TM发送消息M预提交失败响应,全局事务结束;预提交成功,TC会调用工行系统回调操作,去完成工行用户A的预扣款1万元的操作。工行系统会向TC发送预扣原创 2021-10-20 14:19:33 · 906 阅读 · 0 评论 -
10.RocketMQ之消息发送分类+消息的堆积与延迟+消息清理
一、消息发送分类同步消息:异步消息:单向发送消息:不等待Broker返回ACK,效率高,可靠性低。代码示例:同步生产者: https://gitee.com/anilnak/rocket-mq/tree/dev/1.0.0异步生产者: https://gitee.com/anilnak/rocket-mq/tree/dev/2.0.0单向发送消息: https://gitee.com/anilnak/rocket-mq/tree/dev%2F3.0.0/消费者消费消息实例代码: h原创 2021-10-20 13:06:14 · 441 阅读 · 0 评论 -
9.RocketMQ之消息的幂等+消息的堆积与延迟+消息清理
一、消息的幂等RocketMQ可以保证消息不丢失但是无法保证消息不重复。当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的。消费一次和消费多次对系统产生影响相同。重复的消息可能会影响业务处理,需要做幂等处理。消息重复的场景1)发送消息时消息重复:生产者向broker发送消息,broker网络闪断没有向生产者发送应答失败,生产者默认发送失败,将重复发送消息。2)消费时消息重复:消费成功时向b原创 2021-10-20 12:53:31 · 713 阅读 · 0 评论 -
08.RocketMQ之消息的订阅关系+offset管理
一、订阅关系的一致性同一个消费者组(GroupId相同)下所有Consumer实例所订阅的Topic与Tag及对消息的处理逻辑必须完全一致。否则消息逻辑混乱会导致消息丢失。错误:二、offset管理Consumer的消费进度offset。消费进度offset记录每个Queue的不同消费组的消费进度,根据消费进度器不同,可以分为本地模式、远程模式。本地管理模式消费模式为广播消费,每条消息被所有消费者消费,每个消费者记录自己的消费进度,不存在交集。以json模式持久化到consumer本地磁盘文原创 2021-10-20 12:35:52 · 811 阅读 · 0 评论 -
07.RocketMQ之消息的消费
一、pull拉取和push推动消费者组对于消息消费的方式:集群、广播pull拉取消费:Consumer主动从Broker拉取消息,实时性较弱。便于控制消息拉取push推送消费:Broker收到数据主动推送给消费者。实时性较高。发布-订阅模式,Queue中有消费者注册的监听器,一旦有新消息就会回调执行。这些都是基于消费者与Broker的长链接,需要消耗系统资源。广播模式每条消息都会发送给消费者。集群模式消费者平均分摊消息,每条消息只会被发送到消费者组内的某个消费者中。Rebalance机原创 2021-10-19 19:33:23 · 1686 阅读 · 0 评论 -
06.RocketMQ之工作原理
一、消息的生产过程1、Producer可以将消息写入到某Brocker中的某个Queue中,经历了如下过程:Producer先向NameServer发送获取消息Topic的路由信息请求;NameServer返回该topic的路由表以及Broker列表;Producer根据代码中指定的Queue列表选出一个队列,用于后续存储消息;Producer对消息进行处理,选择出的Queue所在的Broker发出RPC请求,将消息发送到选择的Queue中。2、涉及到的名词解释:路由表:实际是map,k原创 2021-10-19 18:52:59 · 126 阅读 · 0 评论 -
05.RocketMQ之磁盘阵列
历史由于当时大容量磁盘比较昂贵,RAID的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低,廉价已毫无意义,因此RAID变成独立磁盘冗余阵列。RAID等级RAID主要利用镜像、数据条带和数据校验三种技术获取高性能、可靠性、容错能力和扩展性。根据这三种技术的使用策略和组合架构,把RAID分为不同等级,满足数据应用的需求。关键技术1)镜像技术 ——数据保护镜像技术是一种冗余技术,为磁盘提供数据备份功能。.原创 2021-10-19 17:28:04 · 148 阅读 · 0 评论 -
04.RocketMQ集群搭建原理
一、数据复制与刷盘策略复制策略:Broker的Master与Slave间的数据同步方式,分为同步复制与异步复制。同步复制:消息写入Master后,等待Slave同步数据成功后才返回ACK。异步复制:消息写入Master后,master立即向producer返回成功ACK,无需等待slave同步数据成功。降低系统写入延迟,RT变小,提高吞吐量。刷盘策略:消息发送到broker内存后消息持久化到磁盘的方式,分为同步刷盘与异步刷盘同步刷盘:消息持久化到broker到磁盘后才算消息写入成功。异步刷盘.原创 2021-10-19 17:21:40 · 305 阅读 · 0 评论 -
03.RocketMQ基本概念+系统架构+工作流程
一、基本概念消息(Message):消息系统所传输信息的物理载体,生产和消费的最小单位,每个消费必须属于一个主题(topic)。主题(Topic):一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,RocketMQ进行消费订阅的基本单位。一个生产者可以同时发送多种Topic消息;一个消费者只对某种特定的topic感兴趣,可以订阅和消费一种topic。 标签(Tag):用于同一主题下区分不同类型的消息。队列(Queue):存储消息的物理实体。一个Topic可以包含多个Queue,每个原创 2021-10-19 16:51:35 · 194 阅读 · 0 评论 -
02.RocketMQ安装与启动
搭建步骤:服务器环境Host添加信息防火墙配置环境变量配置创建消息存储路径broker配置文件修改启动脚本文件服务器启动查看进程状态查看日志原创 2021-10-19 16:30:55 · 94 阅读 · 0 评论 -
01.RocketMQ概述
一、简介提供消息队列的中间件,提供消息的生产、存储、消费全过程API的软件系统。二、用途限流削峰 ———将系统超量请求暂存,系统日后慢慢处理,避免请求丢失或系统压垮。异步解耦——由于上游系统对下游系统同步调用会降低系统吞吐量与并发度,两层之间同步与异步的转化通过MQ层实现 。数据收集——分布式系统产生海量级数据流,例如日志、监控数据,通过mq进行数据汇聚、分析。三、常见MQ产品ActiveMQ:java语言,活跃度低。RabbitMQ:erlang语言,二次开发难度大,SpringC原创 2021-10-19 15:50:28 · 121 阅读 · 0 评论