"Kafka Fundamentals"

💡 原文英文,约2200词,阅读约需8分钟。
📝

内容提要

本文介绍 Kafka 的 Commit 方式,包括自动提交、同步提交和异步提交。建议使用同步+异步提交混合方式,确保处理完成后再提交。同时介绍了 Commit 具体的 offset,使用 HashMap 存储当前 offset,并在每处理一定数量的消息后进行异步提交。

🎯

关键要点

  • Kafka 的消息通过主题(Topic)和分区(Partition)进行分类,消息在分区内有序,但在整个主题中无序。
  • 消费者通过跟踪消息的偏移量(offset)来记录已消费的消息,消费者组确保每个分区只被一个消费者消费。
  • Kafka 服务器称为 Broker,负责接收生产者的消息、分配偏移量并将消息写入磁盘存储。
  • Kafka 的保留策略允许消息在一定时间内持久存储,达到限制后会过期删除。
  • 生产消息的流程包括创建 ProducerRecord,序列化数据并选择分区,最后将消息发送到 Kafka Broker。
  • Kafka 支持三种消息发送模式:Fire-and-forget、Synchronous send 和 Asynchronous send。
  • 重要参数包括 client.id 和 acks,acks 决定消息成功确认的条件。
  • Kafka 消息是键值对,键用于决定消息写入的分区,使用哈希算法进行映射。
  • 记录可以包含头部信息,用于添加元数据而不影响消息的键值对。
  • Kafka 支持配额和限流机制,以限制消息的生产和消费速率。
  • 消费者组由多个消费者组成,确保每个消费者处理不同的分区,避免消息处理的瓶颈。
  • Partition Rebalance 可能在消费者组变化或管理员新增分区时发生,支持两种重平衡方式:Eager 和 Cooperative。
  • Kafka 允许消费者使用固定 ID 加入消费者组,以避免分区的频繁重平衡。
  • 消费者在重平衡时可能需要提交偏移量,SDK 提供相关事件供消费者监听。
  • Kafka 的偏移量提交由消费者负责,提交的偏移量可能导致消息重复消费或丢失。
  • Kafka 支持自动提交、同步提交和异步提交三种提交方式,建议使用同步与异步混合方式。
  • 具体的偏移量提交可以使用 HashMap 存储当前偏移量,并在处理一定数量的消息后进行异步提交。
➡️

继续阅读