跳转至

Kafka

分布式事件流平台,适合高吞吐事件采集、日志流、异步解耦和流处理。Kafka 的数据以 Topic 为单位组织,并被切分为多个 Partition。

核心概念

概念 说明
Broker Kafka 服务节点。
Topic 一类事件的逻辑分类。
Partition Topic 的并行与顺序边界;顺序只保证在单个 Partition 内。
Producer 向 Topic 写入事件的客户端。
Consumer Group 一组协作消费的实例;同组内一个 Partition 同时只分配给一个消费者。
Replica Partition 的副本,用于容错与可用性。

同一 key 的事件写入同一 Partition,可在该 Partition 内保持顺序。分区数量决定最大消费并行度,也影响文件数、恢复和运维成本。

常用检查

# 以下命令按实际 Kafka 安装路径、认证方式和 Bootstrap Server 替换
kafka-topics.sh --bootstrap-server kafka-1:9092 --list
kafka-topics.sh --bootstrap-server kafka-1:9092 --describe --topic orders
kafka-consumer-groups.sh --bootstrap-server kafka-1:9092 --list
kafka-consumer-groups.sh --bootstrap-server kafka-1:9092 --describe --group order-service

可靠性与容量

  • 生产 Topic 通常使用多个副本,并让副本跨节点/故障域分布;副本数必须小于等于可用 Broker 数。
  • Producer 需要按业务选择确认级别、重试、幂等和超时;Consumer 需要正确处理重复消费。
  • 重点监控 Under-Replicated Partitions、Offline Partitions、Consumer Lag、磁盘使用率、请求延迟和 Controller 状态。
  • 分区只能增加不能直接减少;创建 Topic 前应评估吞吐、保留期、消费者并行度和未来扩容。

Kafka 复制发生在 Topic-Partition 级别;每个消费者组会维护自己的消费进度。官方参考:Kafka 文档