Kafka

Kafka特点:

  • 缓冲/削峰
  • 解耦
  • Kafka 是由三部分组成, Produce(Java), Broker(Scala), Consumer(Java), 所以他的下载包, kafka_2.13-3.0.0.tgz, 代表Scala版本是2.13, kafka是3.0.0版本

  • kafka削峰, 不只是下游消费的速度, 就算是硬盘的读写极限, 也可以进行削峰


    image.png

Kafka架构设计

1, 为了方便拓展, 提供吞吐量, 一个topic分为多个partition
  • 100T的数据太大, 可以通过[分区]的方式, 使用多个broker实例, 来处理这些数据
2, 配合分区设计, 提出消费组的概念, 组内每个消费者并行消费
  • 同样的consumer, 也需要多个来消费kafka的数据, 而且一个consumer只能处理一个分区的数据, 这样才不会乱
    image.png
3, 为了提高可用性, 为每个partition增加若干个副本, 类似NameNode HA

为了防止分区宕机数据丢失, kafka还可以将分区进行副本备份,
**consumer消费的时候, 只会消费Leader的数据, 当leader挂了, follower可能会成为leader, 保证数据不丢失


image.png
4, Zk中记录谁是Leader

Zk中也会记录一部分数据, 比如谁是Leader,集群的上下线信息, 但是Kafka2.8.0以后不采用ZK了


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容