浅谈kafka
内容提要
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 拦截器可用于监控和性能检测等多种场景。