一. 为啥用kafka

  1. 解耦
  2. 缓冲和削峰
  3. 减冗余(1个生产多个消费)
  4. 异步通信(先放数据/消息,需要时处理)

二. 高可用性

  1. zk保存kafka元数据(broker ID,topic,consumer信息)
    注意:zk在kafka中,选举controller和检测broker存活
  2. 多副本增大系统容错性

三. 一致性

  1. 从consumer端利用HW

四. 快的原因

  1. 顺序写(磁盘随机写入时,需要进行寻址,移动磁头,耗时,顺序写不涉及)
  2. 0拷贝
  3. 压缩协议(gzip、snappy、Lz4)
  4. 批量处理(合并小的请求,已流的方式进行交互,直顶网络上限)
  5. pull模式(consumer需要时直接从brokers拉取数据,此时与消费端处理能力相符)

补充解释 零拷贝:摘自网络
在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐