随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

随笔分类 -  RocketMQ

RocketMQ
24第四章:【09】死信队列
摘要:一、什么是死信队列 当一条消息初次消费失败,消息队列会自动进行消费重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。这个队列就是死信队列(Dead-Letter Queue,DLQ),而其 阅读全文
posted @ 2022-08-14 23:01 格物致知_Tony 阅读(101) 评论(0) 推荐(0) 编辑
23第四章:【08】消息消费重试机制
摘要:一、顺序消息的消费重试 对于顺序消息,当 Consumer 消费消息失败后,为了保证消息的顺序性,其会自动不断地进行消息重试,直到消费成功。消费重试默认间隔时间为 1000 毫秒。重试期间应用会出现消息消费被阻塞的情况。 DefaultMQPushConsumer consumer = new De 阅读全文
posted @ 2022-08-14 22:34 格物致知_Tony 阅读(112) 评论(0) 推荐(0) 编辑
22第四章:【07】消息发送重试机制
摘要:一、消息发送重试机制说明 Producer 对发送失败的消息进行重新发送的机制,称为消息发送重试机制,也称为消息重投机制。 对于消息重投,需要注意以下几点: 生产者在发送消息时,若采用同步或异步发送方式,发送失败会重试,但 oneway 消息发送方式发送失败是没有重试机制的 只有普通消息具有发送重试 阅读全文
posted @ 2022-08-14 21:55 格物致知_Tony 阅读(200) 评论(0) 推荐(0) 编辑
21第四章:【06】消息过滤
摘要:一、消息过滤 消息者在进行消息订阅时,除了可以指定要订阅消息的 Topic 外,还可以对指定 Topic 中的消息根据指定条件进行过滤,即可以订阅比 Topic 更加细粒度的消息类型。 对于指定 Topic 消息的过滤有两种过滤方式:Tag 过滤与 SQL 过滤。 1、Tag 过滤 通过 consu 阅读全文
posted @ 2022-08-14 21:41 格物致知_Tony 阅读(110) 评论(0) 推荐(0) 编辑
20第四章:【05】批量消息
摘要:一、批量发送消息 发送限制 生产者进行消息发送时可以一次发送多条消息,这可以大大提升 Producer 的发送效率。不过需要注意以下几点: 批量发送的消息必须具有相同的 Topic 批量发送的消息必须具有相同的刷盘策略 批量发送的消息不能是延时消息与事务消息 批量发送大小 默认情况下,一批发送的消息 阅读全文
posted @ 2022-08-14 19:26 格物致知_Tony 阅读(166) 评论(0) 推荐(0) 编辑
19第四章:【04】事务消息
摘要:一、问题引入 这里的一个需求场景是:工行用户 A 向建行用户 B 转账 1 万元。 我们可以使用同步消息来处理该需求场景: 工行系统发送一个给 B 增款 1 万元的同步消息 M 给 Broker 消息被 Broker 成功接收后,向工行系统发送成功 ACK 工行系统收到成功 ACK 后从用户 A 中 阅读全文
posted @ 2022-08-14 17:47 格物致知_Tony 阅读(72) 评论(0) 推荐(0) 编辑
18第四章:【03】延时消息
摘要:一、延时消息 当消息写入到 Broker 后,在指定的时长后才可被消费处理的消息,称为延时消息。 采用 RocketMQ 的延时消息可以实现定时任务的功能,而无需使用定时器。典型的应用场景是,电商交易中超时未支付关闭订单的场景,12306 平台订票超时未支付取消订票的场景。 在电商平台中,订单创建时 阅读全文
posted @ 2022-08-14 17:24 格物致知_Tony 阅读(167) 评论(0) 推荐(0) 编辑
17第四章:【02】顺序消息
摘要:一、什么是顺序消息 顺序消息指的是,严格按照消息的发送顺序进行消费的消息(FIFO)。 默认情况下生产者会把消息以 Round Robin 轮询方式发送到不同的 Queue 分区队列;而消费消息时会从多个 Queue 上拉取消息,这种情况下的发送和消费是不能保证顺序的。如果将消息仅发送到同一个 Qu 阅读全文
posted @ 2022-08-08 23:01 格物致知_Tony 阅读(46) 评论(0) 推荐(0) 编辑
16第四章:【01】普通消息
摘要:一、消息发送分类 Producer 对于消息的发送方式也有多种选择,不同的方式会产生不同的系统效果。 1、同步发送消息 同步发送消息是指,Producer 发出⼀条消息后,会在收到 MQ 返回的 ACK 之后才发下⼀条消息。该方式的消息可靠性最高,但消息发送效率太低。 2、异步发送消息 异步发送消息 阅读全文
posted @ 2022-08-08 22:54 格物致知_Tony 阅读(32) 评论(0) 推荐(0) 编辑
15第三章:【09】消息清理
摘要:消息的清理 消息被消费过后会被清理掉吗?不会的。 消息是被顺序存储在 commitlog 文件的,且消息大小不定长,所以消息的清理是不可能以消息为单位进行清理的,而是以 commitlog 文件为单位进行清理的。否则会急剧下降清理效率,并实现逻辑复杂。 commitlog 文件存在一个过期时间,默认 阅读全文
posted @ 2022-08-08 22:36 格物致知_Tony 阅读(44) 评论(0) 推荐(0) 编辑
14第三章:【08】消息堆积与消费延迟
摘要:一、消息堆积与消费延迟概念 消息处理流程中,如果 Consumer 的消费速度跟不上 Producer 的发送速度,MQ 中未处理的消息会越来越多(进的多出的少),这部分消息就被称为堆积消息。消息出现堆积进而会造成消息的消费延迟。 以下场景需要重点关注消息堆积和消费延迟问题: 业务系统上下游能力不匹 阅读全文
posted @ 2022-08-08 22:33 格物致知_Tony 阅读(79) 评论(0) 推荐(0) 编辑
13第三章:【07】消息幂等
摘要:一、消费幂等 当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的。 幂等:若某操作执行多次与执行一次对系统产生的影响是相同的,则称该操作是幂等的。 在互联网应用中,尤其在网络不稳定的情况下,消息很 阅读全文
posted @ 2022-08-08 22:27 格物致知_Tony 阅读(60) 评论(0) 推荐(0) 编辑
12第三章:【06】offset管理
摘要:一、offset 管理 这里的 offset 指的是 Consumer 的消费进度 offset。 消费进度 offset 是用来记录每个 Queue 的不同消费组的消费进度的。根据消费进度记录器的不同,可以分为两种模式:本地模式和远程模式。 二、offset 本地管理模式 当消费模式为广播消费时, 阅读全文
posted @ 2022-08-04 10:30 格物致知_Tony 阅读(85) 评论(0) 推荐(0) 编辑
11第三章:【05】订阅关系的一致性
摘要:一、订阅关系的一致性 订阅关系的一致性指的是,同一个消费者组(Group ID 相同)下所有 Consumer 实例所订阅的 Topic 与 Tag 及对消息的处理逻辑必须完全一致。否则,消息消费的逻辑就会混乱,甚至导致消息丢失。 二、正确订阅关系 多个消费者组订阅了多个 Topic,并且每个消费者 阅读全文
posted @ 2022-08-04 10:08 格物致知_Tony 阅读(67) 评论(0) 推荐(0) 编辑
10第三章:【04】消息的消费
摘要:一、消息的消费 消费者从 Broker 中获取消息的方式有两种:pull 拉取方式和 push 推动方式。 消费者组对于消息消费的模式又分为两种:集群消费 Clustering 和广播消费 Broadcasting。 二、获取消费类型 1、拉取式消费 Consumer 主动从 Broker 中拉取消 阅读全文
posted @ 2022-08-04 10:01 格物致知_Tony 阅读(60) 评论(0) 推荐(0) 编辑
09第三章:【03】indexFile
摘要:一、indexFile 除了通过通常的指定 Topic 进行消息消费外,RocketMQ 还提供了根据 key 进行消息查询的功能。该查询是通过 store 目录中的 index 子目录中的 indexFile 进行索引实现的快速查询。当然,这个 indexFile 中的索引数据是在包含了 key 阅读全文
posted @ 2022-08-03 18:48 格物致知_Tony 阅读(63) 评论(0) 推荐(0) 编辑
08第三章:【02】消息的存储
摘要:一、消息的存储 RocketMQ 中的消息存储在本地文件系统中,这些相关文件默认在当前用户主目录下的 store 目录中。 abort:该文件在 Broker 启动后会自动创建,正常关闭 Broker,该文件会自动消失。若在没有启动 Broker 的情况下,发现这个文件是存在的,则说明之前 Brok 阅读全文
posted @ 2022-07-31 12:10 格物致知_Tony 阅读(60) 评论(0) 推荐(0) 编辑
07第三章:【01】消息的生产
摘要:一、消息的生产 Producer 可以将消息写入到某 Broker 中的某 Queue 中,其经历了如下过程: Producer 发送消息之前,会先向 NameServer 发出获取消息 Topic 的路由信息的请求 NameServer 返回该 Topic 的路由表及 Broker 列表 Prod 阅读全文
posted @ 2022-07-31 11:59 格物致知_Tony 阅读(23) 评论(0) 推荐(0) 编辑
06第二章:【05】集群搭建实践
摘要:一、搭建 RocketMQ 集群 1、集群架构 这里要搭建一个双主双从异步复制的 Broker 集群。为了方便,这里使用了两台主机来完成集群的搭建。 这两台主机的功能与 broker 角色分配如下表。 2、克隆生成 rocketmqOS1 克隆 rocketmqOS 主机,并修改配置。指定主机名为 阅读全文
posted @ 2022-07-24 18:21 格物致知_Tony 阅读(49) 评论(0) 推荐(0) 编辑
05第二章:【04】磁盘阵列RAID
摘要:一、RAID 历史 1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 ,即廉价冗余磁盘阵列( Redundant Array of Ine 阅读全文
posted @ 2022-07-24 17:55 格物致知_Tony 阅读(194) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示