跳至主要內容
Kafka 进阶:深入理解分区、事务与 exactly-once

Kafka 进阶:深入理解分区、事务与 exactly-once

前言

大多数开发者对 Kafka 的理解停留在"发消息、收消息"的层面。但当你遇到消息丢失、消息重复、消息乱序这些生产问题时,才是真正需要深入理解 Kafka 内部机制的时候。

本文从分区机制、ISR、幂等生产者、事务消息到 exactly-once 语义,带你逐层深入 Kafka 的核心原理。


第一部分:分区机制深入

1.1 Partition 是什么

Kafka Topic 被划分为多个 Partition(分区),每个 Partition 是一个有序的、不可变的消息序列


郑天祺大约 12 分钟消息队列Kafka分区事务exactly-onceISR
RocketMQ 金融场景实战:担保系统的消息可靠性设计

RocketMQ 金融场景实战:担保系统的消息可靠性设计

前言

金融系统对消息中间件有三个核心要求:不能丢、不能乱、能回溯。RocketMQ 正是为满足这些要求而设计的。本文以担保业务为实战案例,讲解如何用 RocketMQ 构建可靠的消息系统。


第一部分:为什么金融场景选 RocketMQ

1.1 RocketMQ vs Kafka 关键对比

维度 RocketMQ Kafka 金融选型考量
事务消息 原生支持 0.11+支持但复杂 ★★★ RocketMQ 胜
顺序消息 全局+分区顺序 仅分区内顺序 ★★ RocketMQ 胜
延迟消息 18个内置级别 不原生支持 ★★ RocketMQ 胜
消息回溯 按时间秒级回溯 支持但运维复杂 ★ RocketMQ 胜
堆积能力 亿级消息堆积 依赖磁盘容量 持平
社区背景 阿里/蚂蚁金融场景 大数据/日志 ★ RocketMQ 更匹配

郑天祺大约 10 分钟消息队列RocketMQ金融事务消息顺序消息延迟消息
消息队列选型指南:从业务场景到技术决策

消息队列选型指南:从业务场景到技术决策

前言

"用哪个消息队列?"——这是每个架构师都必须回答的问题。答案是:看场景。Kafka 适合大数据,RocketMQ 适合金融交易,RabbitMQ 适合复杂路由,Pulsar 适合多租户。本文帮你建立选型决策框架。


第一部分:四大消息队列全景对比

1.1 核心特性对比

特性 Kafka RocketMQ RabbitMQ Pulsar
开发语言 Java/Scala Java Erlang Java
所属 Apache Apache(阿里) VMware Apache
协议 自有协议 自有协议 AMQP 0-9-1 自有协议
吞吐量 ★★★★★ ★★★★☆ ★★★☆☆ ★★★★★
低延迟 ★★★☆☆ ★★★★☆ ★★★★★ ★★★★☆
消息持久化 ★★★★★ ★★★★★ ★★★☆☆ ★★★★★
事务消息 ★★★★☆ ★★★★★ ★★★★☆ ★★★★★
顺序消息 ★★★☆☆ ★★★★★ ★★★☆☆ ★★★★☆
延迟消息 ★★★★★ ★★★☆☆ ★★★★☆
消息回溯 ★★★★★ ★★★★★ ★★★★★
运维复杂度 ★★★☆☆ ★★★☆☆ ★★☆☆☆ ★★★★☆

郑天祺大约 6 分钟消息队列消息队列选型KafkaRocketMQRabbitMQPulsar