当前位置:   article > 正文

Kafka 学习笔记

kafka 学习笔记

Kafka 基本概念

不局限于 Kafka 的概念:

  • 消息/批次:消息,代表一条记录。一组消息,称为批次。
  • 主题:为更好划定消息的用途,人为划定了消息的主题。
  • 生产者/消费者:分别指消息的生产者,以及使用消息做数据处理的消费者。

Kafka 的概念:

  • 主题(topic):生产者在发送消息至 Kafka 时,需要指定消息的 topic。同样,消费者也通过订阅 topic 的方式消费信息。
  • 消费者组(consumer group):一组消费者,它们订阅相同的topic,对数据有着相同的消费意图。
  • 分区(partition)/ (key):
    • 每个主题,分为多个分区。
    • 分区是 Kakfa 的设计。它的存在保证数据冗余(高可用)、消息在同一分区下具有有序性
    • 生产者发送消息至 Kafka 时,指定 topic 之外、也可以指定自己的 。Kafka 对键做哈希计算得到分区,并将消息持久化至 topic 下的分区。
    • 对于批次消息,它们的 topic、key 一致,partition 也一致。
  • 偏移量:kafka使用偏移量保存消费进度,这些信息内容为整数,由kafka为每条消息产生,保存在zookeeper,可以被消费者组使用确定当前消费进度。
  • 集群(cluster)/节点(broker):
    • 节点:一台独立的kafka服务器;
    • 集群:好多台kafka服务器相互配合组成的服务集群。
    • 节点内部,分别保存者不同topic的不同partition。

举例:
有 topic1和 topic2;每个 topic 各有自己的
partition。
集群有2台节点,记作worker1、worker2 。
一个可能的情况:
worker1保存:topic1的partition1 和 topic2的partition2;
worker2保存:topic1的partition2 和 topic1的partition1。
这个例子说明,worker可以保存不同topic的不同partition。

  • 集群控制器 / 分区首领

    • 集群控制器:每个集群有一台worker被选举为集群控制器,任务是将分区分给节点
    • 分区首领:同一个 topic 下有多个分区,每一个分区,都会被发给多个worker。 这个时候集群通过 分区复制 提供了消息冗余,保证了极端情况下的高可用性。这种情况下,每个存在在不同broker上的分区需要选出一个分区首领对外提供服务,其他分区可以在该broker失效导致该分区首领无法对外提供服务时接管任务。
  • 消息保留(持久化):Kafka 消息持久化自然需要一套机制管理磁盘空间。它的逻辑是:配置持久化数据规格上限和数据超时时间。满足上述 2条中的任意一条都会触发Kafka的磁盘清理逻辑。当然不只是 cluster 或 worker,我们也可以单独确定某 topic 的磁盘清理逻辑。


Kafka 的安装

Kafka 的数据生产 & 消费

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/511629
推荐阅读
相关标签
  

闽ICP备14008679号