UP | HOME

基础

Table of Contents

  在深入了解Kafka之前,必须了解主题,经纪人,生产者和消费者等主要术语

术语

主题

Topics : 属于 特定类别的消息流

  • 数据 存储主题
  • 主题被 拆分分区
    • 每个这样的分区包含 不可变 有序序列 的消息
    • 分区被实现为具有 相等大小 的一组 分段文件

分区

Partition : 主题可能有许多分区,因此它可以处理任意数量的数据

分区偏移

Partition offset : 每个分区中的消息具有称为 offset唯一序列标识

分区备份

Replicas of partition : 副本只是一个 分区的备份

     副本从不读取或写入数据,它们用于防止数据丢失

代理人

Broker : 负责 维护 发布数据简单系统

  • 每个代理 中的 每个主题 可以具有 零个或多个 分区
     假设在一个主题和N个代理中有N个分区,每个代理将有一个分区

     假设在一个主题中有N个分区并且多于N个代理(n + m),则第一个N代理将具有一个分区,并且下一个M代理将不具有用于该特定主题的任何分区

     假设在一个主题中有N个分区并且小于N个代理(n-m),每个代理将在它们之间具有一个或多个分区共享。 由于代理之间的负载分布不相等,不推荐使用此方案

Kafka集群

Kafka Cluster : Kafka有 多个代理 被称为 Kafka集群

  • 可以扩展Kafka集群,无需停机
  • 这些集群用于管理 消息数据的持久性和复制

生产者

Producer : 给 一个或多个 Kafka 主题 发送 消息 的发布者

  • 生产者向 代理人 发送数据
  • 每当生产者将消息发布给代理时, 代理 只需将 消息 附加到最后一个段文件
    • 实际上,该消息将被 附加到分区
  • 生产者还可以向他们 选择的分区 发送消息

消费者

Consumer : 从 代理读取 数据

  • 消费者 订阅 一个或多个 主题
  • 通过从代理中提取数据来使用已发布的消息

领导者

Leader : 负责 给定分区 的所有 读取和写入节点

     每个分区都有一个服务器充当Leader

跟随者

Follower : 跟随 领导者指令节点

  • 跟随者作为 正常消费者拉取消息更新 其自己的 数据存储
     如果领导者不可用,一个追随者将自动成为新的领导者

实例

fundamentals.jpg

在上图中, 主题 配置为 三个分区

  • 分区1 具有 两个偏移因子 0 和 1
  • 分区2 具有 四个偏移因子 0, 1, 2 和 3
  • 分区3 具有 一个偏移因子 0
    副本的id 与 承载它的服务器的id 相同

假设,如果 主题的复制因子 设置为 3,那么Kafka将 创建 每个分区3个相同的副本 ,并将它们 放在集群 中以使其可用于其所有操作

    为了平衡集群中的负载,每个代理都存储一个或多个这些分区

    多个生产者和消费者可以同时发布和检索消息

Next: 集群

Previous: 概述

Home: 目录