初识kafka |小册免费学

820 阅读3分钟

面试官说我会的太少,那就抓紧学呗

Kafka 能干啥呢

  • 消息系统: 一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。Kafka就是一种发布-订阅模式。
  • 存储系统: Kafka 把消息持久化到磁盘
  • 流式处理平台: Kafka 不仅为每个流行的流式处理框架提供了可靠的数据来源,还提供了一个完整的流式处理类库,比如窗口、连接、变换和聚合等各类操作

什么kafka

一个典型的 Kafka 体系架构包括若干 Producer、若干 Broker、若干 Consumer,以及一个 ZooKeeper 集群

image.png

  • ZooKeeper 为 Kafka 提供了可靠的元数据存储,比如 Topic/ 分区的元数据、Broker 数据、ACL 信息等等。同时 ZooKeeper 充当 Kafka 的领导者,以更新集群中的拓扑更改;根据 ZooKeeper 提供的通知,生产者和消费者发现整个 Kafka 集群中是否存在任何新 Broker 或 Broker 失败。大多数的运维操作,比如说扩容、分区迁移等等,都需要和 ZooKeeper 交互。

  • Producer 向主题发布新消息的应用程序

  • Broker 负责将收到的消息存储到磁盘中

  • Consumer从主题订阅新消息的应用程序。

    • 消费者位移:Consumer Offset。表征消费者消费进度,每个消费者都有自己的消费者位移。
    • 消费者组:Consumer Group。多个消费者实例共同组成的一个组,同时消费多个分区以实现高吞吐。

更正,最近kafka不用zooKeeper了

  1. 首先从集群运维的角度来看,Kafka 本身就是一个分布式系统。但它又依赖另一个开源的分布式系统,而这个系统又是 Kafka 系统本身的核心。这就要求集群的研发和维护人员需要同时了解这两个开源系统,ZooKeeper 的存在增加了运维的成本。
  2. 从集群规模的角度来看,限制 Kafka 集群规模的一个核心指标就是集群可承载的分区数。集群的分区数对集群的影响主要有两点:ZooKeeper 上存储的元数据量和控制器变动效率。的。在当前架构下,Kafka 单集群无法稳定承载百万分区稳定运行。

主题(Topic)与分区(Partition)

Kafka 中的消息以主题为单位进行归类,主题是一个逻辑上的概念,它还可以细分为多个分区,一个分区只属于单个主题,很多时候也会把分区称为主题分区(Topic-Partition)。同一主题下的不同分区包含的消息是不同的,分区在存储层面可以看作一个可追加的日志(Log)文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)。

image.png

文章末尾请带上以下文字及链接:本文正在参与「掘金小册免费学啦!」活动, 点击查看活动详情