高可用与可靠性

消息系统的可靠性是核心指标。本文深入讲解 Kafka 的副本机制、ISR、消息可靠性保证等关键特性。

副本机制

副本架构

Topic: orders, Partition: 0, Replication Factor: 3

┌─────────────────────────────────────────────────────┐
│                                                     │
│   Broker 0         Broker 1         Broker 2       │
│  ┌─────────┐      ┌─────────┐      ┌─────────┐    │
│  │ Leader  │      │Follower │      │Follower │    │
│  │         │─────▶│         │      │         │    │
│  │  P0     │      │  P0     │◀─────│  P0     │    │
│  └────▲────┘      └─────────┘      └─────────┘    │
│       │                                            │
│       │ 所有读写请求                               │
│       │                                            │
└───────┼────────────────────────────────────────────┘

   Producer / Consumer

Leader 与 Follower

副本同步流程

ISR 机制

ISR 概念

ISR(In-Sync Replicas)是与 Leader 保持同步的副本集合:

HW 与 LEO

ISR 相关配置

Leader 选举

选举触发条件

Controller 选举

Partition Leader 选举

消息可靠性

ACK 机制

三端可靠性保证

消息丢失场景分析

消息顺序性

单分区顺序

保证顺序的方法

高可用部署

推荐配置

集群部署建议

面试高频问题

1. Kafka 如何保证消息不丢失?

2. ISR 是什么?有什么作用?

3. HW 和 LEO 的区别?

4. acks=all 一定不丢消息吗?

5. Controller 的作用是什么?

总结

Last updated