Kafka 大数据管道应用
Kafka 不仅是消息队列,更是大数据生态的”中枢神经系统”。它连接数据生产者(业务系统)和数据消费者(Hadoop/Spark/Flink)。 一、Kafka 在大数据中的角色 1.1 数据总线的概念 1.2 解耦——生产者和消费者完全独立 1.3 削峰——应对流量尖峰 1.4 多订阅——一份数据被多方消费 二、典型架构 2.1 业务系统 → Kafka → Hadoop/Hive 2.2 业务系统 → Kafka → Spark Streaming 实时处理 2.3 业务系统 → Kafka → Flink 流计算 2.4 业务系统 → Kafka...
Kafka 消息可靠性设计
消息中间件最怕两个问题:丢了和重了。本文从 Producer、Broker、Consumer 三个角度给出完整的可靠性设计方案。 一、消息可靠性的三端模型 1.1 Producer → Broker → Consumer 的传递链路 1.2 每一端都有丢失的可能 1.3 “至少一次” vs “最多一次” vs “精确一次” 二、Producer 端——保证发送不丢失 2.1 acks = -1(all)——所有 ISR 副本确认 2.2 retries 重试机制——网络抖动导致临时失败 2.3 max.in.flight.requests.per.connection——重试引发乱...
Kafka 高性能原理
Kafka 为什么这么快?PageCache、sendfile、顺序写盘——这些底层技术的巧妙组合成就了 Kafka 的超高吞吐。 一、Kafka 的 IO 模型 1.1 基于磁盘的消息持久化——不是内存队列 1.2 为什么用磁盘还能这么快——六字秘诀”顺序写 + 零拷贝” 1.3 传统 IO 的 4 次拷贝 + 4 次上下文切换 二、零拷贝(Zero Copy) 2.1 sendfile() 系统调用——DMA 直接传输 2.2 2 次拷贝 + 2 次上下文切换 2.3 mmap() 内存映射——另一种零拷贝 2.4 Kafka 中的 FileChannel.transferTo...