RocketMQ消费进度管理

业务实现消费回调的时候,当且仅当此回调函数返回 ConsumeConcurrentlyStatus.CONSUME_SUCCESS ,RocketMQ才会认为这批消息(默认是1条)是消费完成的 如果这时候消息消费失败,例如数据库异常,余额不足扣款失败等一切业务认为消息需要重试的场景,只要返回…

hello hello 发布于 2024-01-12

RocketMQ 多级存储设计与实现

随着 RocketMQ 5.1.0 的正式发布,多级存储作为 RocketMQ 一个新的独立模块到达了 Technical Preview 里程碑:允许用户将消息从本地磁盘卸载到其他更便宜的存储介质,可以用较低的成本延长消息保留时间。本文详细介绍 RocketMQ 多级存储设计与实现。 设计总览 RocketMQ 多级存储旨在 不影响热数据读写的前提下…

hello hello 发布于 2024-01-12

RocketMQ文件刷盘机制与过期文件删除

文件刷盘机制 RocketMQ 的消息是存储在磁盘上的,这样做有两个优点: 保证断电后恢复 让存储的消息量超出内存的限制 RocketMQ 存储与读写是基于 JDK NIO 的内存映射机制,具体使用 MappedByteBuffer(基于MappedByteBuffer 操作大文件的方式,其读写性能极高)RocketMQ…

hello hello 发布于 2024-01-10

RocketMQ业务保障

1 . 为什么从业务上保证 1.1 消息丢失问题 RocketMQ 虽然号称消息不会丢失,但是还是有几率存在MQ宕机以及rocketMQ使用上的问题可能存在消息丢失等,对于类似于支付确认的消息一般来说是一条都不允许丢失的 1.2 消息 幂等 性 在网络环境中,由于网络不稳定等因素, 消息队列 的消息有可能出现重复,大概有以下几种: 发送时消息重复…

hello hello 发布于 2024-01-10

应用架构的核心使命是什么?阿里高级技术专家这样说

架构 架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原则进行切分,切分的原则,是要便于不同的角色进行并行工作。 为什么需要架构? 有系统的地方就需要架构,大到航空飞机,小到一个电商系统里面的一个功能组件都需要设计和架构。…

hello hello 发布于 2024-01-10

RocketMQ消息保障

1 . 生产端保障 生产端保障需要从以下几个方面来保障 使用可靠的消息发送方式 注意生产端重试 生产禁止自动创建topic 1.1 ⚠消息发送保障 1.1.1同步发送…

hello hello 发布于 2024-01-09

RocketMQ消息存储

目前的MQ中间件从存储模型来,分为需要持久化和不需要持久化的两种模型,现在大多数的是支持持久化存储的,比如ActiveMQ、RabbitMQ、Kafka、RocketMQ。ZeroMQ却不需要支持持久化存储而业务系统也大多需要MQ有持久存储的能力,这样可以大大增加系统的高可用性。…

hello hello 发布于 2024-01-09

RocketMQ消息投递策略

RocketMQ的消息投递分分为两种:一种是生产者往MQ Broker中投递;另外一种则是MQ broker 往消费者 投递(这种投递的说法是从消息传递的角度阐述的,实际上底层是消费者从MQ broker 中Pull拉取的)。 RocketMQ的消息模型 一个Topic(消息主题)可能对应多个实际的消息队列(MessgeQueue)…

hello hello 发布于 2024-01-08

RocketMQ死信队列

一、RocketMQ死信队列概述 RocketMQ是一个高性能、可靠性、可扩展性 broker 致力于处理大量数据,包括流式数据和批量数据,并且能够实现在线扩容。RocketMQ支持死信队列(Dead Letter Queue,DLQ),可以将无法被使用者消费的消息转发到指定的 topic 或者 queue 中去,死信队列就是为了解决这些问题而生的。…

hello hello 发布于 2024-01-08

如何造一个“钉钉”?谈谈消息系统架构的实现

梗概 生活中最常见的即时聊天类软件如:钉钉、微信等,都可以描述为:实现了即时通讯能力的聊天工具。其中聊天会话可分为两大类,分别是:单聊、群聊(公众号类似单聊)。这里我们以钉钉(Ding…

hello hello 发布于 2024-01-08
上一页 下一页