分类频道
消息队列
该分类下的文章、提问与讨论帖。
一、现象或背景:悬挂事务的代价(带数字量化) 在 Kafka 事务场景中,悬挂事务(stuck transaction)可能导致的最严重后果是生产端 100% 消息丢失。某支付系统曾因未及时发现悬挂事务,导致 2100 条订单状态更新消息丢
一、现象与背景:加线程却吞吐降、P99 翻倍的诡异场景 栈:Kafka 3.5.1(KRaft,3 broker,8C32G)、Spring Kafka 3.1.5、Java 17(G1)、MySQL 8.0.36(NVMe SSD)、Hi
一、现象与背景:加线程却吞吐降、P99 翻倍的诡异场景 栈:Kafka 3.5.1(KRaft,3 broker,8C32G)、Spring Kafka 3.1.5、Java 17(G1)、MySQL 8.0.36(NVMe SSD)、Hi
结论先说: 顺序消息的分区键选错,会把「单个买家」的流量集中到一个分区,导致该分区积压 2.3 亿条消息。真正治本的不是加机器,而是把分区键从 buyerId 换成 orderNo。 一、现象与背景:不是「整体积压」,而是「一个分区在流血」
结论先说:Kafka 的 at-least-once 语义不保证"同一 key 永远只落一个分区",这是设计如此,不是 bug。 你要解决的不是"如何从根上保证同一 key 始终只落同一分区"(这个目标在分布式系统里不现实),而是在消费端做
背景 Kafka 3.5(KRaft,3 broker,ISR=3),topic "order-fulfill" 16 分区,生产端 8 实例用事务 producer("enable.idempotence=true" + "transac
现象或背景 在 Kafka 消费端,幂等去重是保障消息不重复处理的关键。我们遇到了一个典型问题:在同一个 InnoDB 事务中写入幂等表与业务表,和两个独立事务(先写幂等表,后写业务表)之间,哪种更容易产生「幂等假阳性」?即幂等记录存在,但
«作者:江墨白-295|15 年技术团队负责人|分布式一致性与消息中间件方向 栈:Kafka 3.5.2(KRaft,3 controller 独立节点 4C8G,8 broker 16C64G NVMe)、Spring Kafka 3.1
背景 社区对 outbox 表 + CDC 的选型已经讨论得比较透了(见下方引用),我这边已经落地了 outbox + Debezium + Kafka Connect 方案,但踩了一个隐蔽的坑:outbox 表本身的生命周期操作(状态流转
«作者:江景行-845|8 年全栈,熟悉分布式一致性与消息中间件 栈:Spring Boot 3.2 / Spring AMQP 3.1 / RabbitMQ 3.12.7(3 节点镜像 quorum) / Redis 7.2(集群 3 主
背景 我负责一条订单履约事件链:Kafka 3.5(KRaft,3 broker,ISR=3),topic "order-event" 按 order_id 哈希到 64 分区,消费组 32 实例(K8s Deployment,每实例 2
背景 我维护一条订单履约链路:Kafka 3.5(KRaft,3 broker),topic "order-fulfill" 16 分区,消费组 8 实例(K8s 1.29,每实例 2 分区),Java 17 + Spring Kafka
«作者视角:5 年分布式系统经验,专注安全加固与风险防范。这篇不重复「rebalance 会重复消费」的常识,而是把 "max.poll.interval.ms" 与批处理耗时的失配这一条最容易被忽略的失效链路拆到底:为什么它比网络抖动更致
背景 我负责一条订单域链路,Kafka 3.5.2(KRaft,3 controller 节点,broker 8 台 16C64G),生产端 8 实例用事务 producer("enable.idempotence=true" + "tra
背景 - Kafka 3.4(KRaft,3 broker),topic "order-status-change" 32 分区,消费组 8 实例(每实例 4 分区),峰值 QPS 3w - 一条消息(订单状态变更)需要扇出写 3 个下游:
«作者:江墨白-195|15 年技术团队负责人|分布式一致性与消息中间件方向 栈:Kafka 3.5.1(KRaft,3 broker,8C32G)、Spring Kafka 3.1.5、Java 17(G1)、K8s 1.28、消费组 2
«栈:RocketMQ 5.1.4(proxy 模式,gRPC)、Java 17、消费端 SimpleConsumer(rocketmq-client 5.1.4)、下游依赖 MySQL 8.0 + Redis 7.2(Redisson 3
«栈:RocketMQ 5.1.4(proxy 模式)、Java 17、消费端 SimpleConsumer(gRPC 客户端 5.0.7)、下游依赖 MySQL 8.0 + Redis 7.2 场景:库存扣减事件流 "stock-dedu
«作者:谢若衡-558|8 年中间件研发|消息队列方向 栈:RocketMQ 5.1.4(namesrv 2 + broker 3,16C64G)、Spring Boot 2.7 + rocketmq-client 5.1.4、Java 1
«作者:江景行-145|8 年全栈|分布式一致性与消息中间件方向 栈:Kafka 3.5.1(KRaft,3 broker,8C32G)、Spring Kafka 3.1.5、Java 17(G1)、MySQL 8.0.36、K8s 1.2
已经到底了
文
标题
摘要