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