Kafka のアーキテクチャ

Apache Kafka 入門

Mike Metzger

Data Engineering Consultant

Kafka のコンポーネント

  • Kafka サーバー
    • 1 台以上のコンピュータで構成されるクラスター
    • データを保存
    • 通信を管理
    • 他システム(データベース、ログ等)と連携可
  • Kafka クライアント
    • Kafka コンシューマで読む
    • Kafka プロデューサで書く
    • 必要に応じて処理
Apache Kafka 入門

Kafka サーバー

  • ストレージ(Kafka ブローカー)
    • プロデューサが書いたデータはトピックで保存・整理
    • トピックはパーティションに分割
    • メッセージ/イベントはイベント ID に基づきパーティションに格納
    • 取得順序は書き込み順と同じ

Kafka のストレージとパーティション

1 Image sourced from https://kafka.apache.org/intro
Apache Kafka 入門

パーティションと複製

  • Kafka はフォールトトレラント
  • 1 台がオフラインでも他がデータを提供
  • 許容故障数 = 複製係数 - 1
  • 最大複製係数 = サーバー台数
  • パーティションのコピーで複製を実現

Kafka クラスター、ブローカー、トピック.png

Apache Kafka 入門

Kafka クラスター、ブローカー、トピック.png

  • 3 台のブローカーからなる Kafka クラスター
  • 3 つのトピックを定義
  • 複製 2x == 1 台まで故障許容
  • ブローカー1はトピック1・2のコピー
  • ブローカー2はトピック2・3のコピー
  • ブローカー3はトピック1・3のコピー
  • 各トピックはクラスター内の 2 台のブローカーで共有
Apache Kafka 入門

1 台故障の例

Kafka クラスター、ブローカー、トピック - ブローカー1台故障.png

  • ブローカー2が故障
  • 複製係数 2x
    • 2 - 1 == 1 台の故障に対応可
  • 各トピックはクラスター上に少なくとも 1 コピー残る
Apache Kafka 入門

2 台故障の例

Kafka クラスター、ブローカー、トピック - ブローカー2台故障.png

  • ブローカーが 2 台故障
  • 複製係数 2x
  • 許容以上の故障(1 台まで)
  • トピック2がクラスターで利用不可
    • トピック1・3は利用可能。全停止ではない
Apache Kafka 入門

演習に進みましょう!

Apache Kafka 入門

Preparing Video For Download...