一. 为啥用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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐