kafka

2025-02-20  本文已影响0人  如风_dcac

Apache Kafka 是一个分布式流处理平台,其核心设计目标是高吞吐、低延迟、高可靠性和水平扩展性。以下从 生产端(Producer)消费端(Consumer)Broker 三个角度详细说明其原理:


一、生产端(Producer)

生产者负责将消息发送到 Kafka 的指定 Topic。其核心机制包括:

1. 消息分区策略

2. 异步发送与批量提交

3. 可靠性保证(ACK 机制)

4. 序列化(Serialization)

5. 生产流程

1. 消息 → 拦截器(可选) → 序列化 → 分区选择 → 进入缓冲区
2. Sender 线程从缓冲区批量获取消息 → 发送到 Broker Leader
3. Broker 确认后,回调 Producer 的 Callback(成功/失败处理)

二、Broker

Broker 是 Kafka 的服务节点,负责消息存储、副本管理和请求处理。

1. Topic 与 Partition

2. 消息存储

3. 副本同步与 ISR 机制

4. 请求处理

5. 高性能设计


三、消费端(Consumer)

消费者以 Consumer Group 为单位订阅 Topic,实现消息的分布式消费。

1. 消费者组(Consumer Group)

2. 消息拉取与 Offset 管理

3. 消费语义

4. 消费流程

1. 消费者加入 Group → Coordinator 分配 Partition → 开始消费。
2. 定期向 Broker 发送心跳(heartbeat.interval.ms),维持活跃状态。
3. 拉取消息 → 处理 → 提交 Offset。

5. 关键配置


四、总结:Kafka 的核心优势

  1. 高吞吐:顺序 I/O + 批量处理 + 零拷贝。
  2. 高可靠:副本机制 + ISR + ACK 机制。
  3. 水平扩展:Topic 分片 + 多副本 + Consumer Group。
  4. 实时性:低延迟的消息传递(生产到消费毫秒级)。

通过合理配置生产者、Broker 和消费者,Kafka 可满足从日志收集到金融级实时处理的多样化场景需求。

上一篇 下一篇

猜你喜欢

热点阅读