Kafka Architecture

Picture from wiki


Producers

  • 負責將訊息 push 到 Kafka cluster,任何實作 Producer API 的 Client

Consumers

  • 從 Kafka cluster pull 訊息,任何實作 Consumer API 的 Client
  • Consumer group: 多個 Consumer 可組成 Consumer group

Brokers

  • Broker: Kafka 的單一節點稱作 Broker
  • Kafka Cluster: 多個 broker 組成 Kafka Cluster
  • Broker 可以說是 Apache Kafka 的 Server 端,仲介處理 Client(Consumer 以及 Producer)的訊息

Message

  • Kafka 的訊息為鍵值對,提供 Topic + Key 對 Partition 的查詢

Topic

  • Topic 為訊息的抽象分類
  • Producers 發送訊息時指定 Topic
  • Consumers 訂閱 Topic
  • Topic 被分為多個 Partition
  • Partition 會有多個 Replica

Partition

  • 建立 Topic 時需要指定 Partitions 數目,Topic 會被分為多個 Partition,Partition 數目之後只能增加不能減少

  • Partition offset: 訊息在 partition 裡面的 index,稱作 offset,為 Long 型態的整數

Replica

  • replication-factor: Partition 產生 n 個副本,分散至各個 Broker 上
  • ISR: 成功同步的 Replica 稱作 ISR
  • Replica 用於保證分散式系統的高可用

ZooKeeper

Notes

  1. Kafka replace zookeeper dependency at 2.8.0.
  2. Quorum: KRaft

References