浅谈kafka

💡 原文中文,约8600字,阅读约需21分钟。
📝

内容提要

Apache Kafka是一种分布式流处理平台,支持顺序读写、数据批量处理和零拷贝技术,可以获得较大的I/O提升,并且支持多种压缩算法,可以节省网络传输带宽和Kafka Broker端的磁盘占用,可以通过设置参数保证消息的可靠性,并且通过HW&ISR机制保证消费数据的一致性和副本数据的一致性,将位移数据作为普通消息提交至内部主题,实现高持久性和高频写操作。

🎯

关键要点

  • Apache Kafka 是一种分布式流处理平台,支持顺序读写和数据批量处理。
  • Apache Kafka 提供基础核心组件,适合需要较大把控度的简单流处理应用。
  • Confluent Kafka 集成了高级特性,适合需要使用这些特性的用户。
  • CDH/HDP Kafka 操作简单,适合快速搭建消息引擎系统,但把控度低。
  • Kafka 消息格式为主题-分区-消息,主题下的消息只保存在一个分区中。
  • 消费者组设计用于横向伸缩,解决消费速度跟不上生产速度的问题。
  • Kafka 支持顺序读写和数据批量处理,提升了处理效率。
  • MMAP 技术通过内存映射文件提升 I/O 性能,减少用户空间到内核空间的复制开销。
  • 零拷贝技术减少数据传输次数,提升数据传输效率。
  • Kafka 支持多种压缩算法,节省网络带宽和磁盘占用。
  • 生产者配置中可设置压缩类型以提高性能。
  • Kafka 提供消息的可靠性保证,通过不同的 Ack 级别实现数据不丢失或不重复。
  • Kafka 的幂等性通过设置 enable.idempotence 参数实现,确保数据唯一性。
  • Kafka 的副本机制确保数据的持久性和一致性,领导者副本处理所有请求。
  • ISR 机制保证消费数据和副本数据的一致性,确保数据同步。
  • 位移数据作为普通消息提交至内部主题,实现高持久性和高频写操作。
  • Consumer Group Rebalance 过程确保所有消费者实例达成共识,影响 TPS。
  • Kafka 拦截器可用于监控和性能检测等多种场景。
➡️

继续阅读