Apache Kafka とは
イベントストリーミングプラットフォーム
Apache Kafka は、リアルタイムで大量のデータを処理するために設計された分散イベントストリーミングプラットフォームです。
コアコンセプト
- Topic — メッセージを整理するカテゴリ
- Partition — 並列処理のためのトピック分割
- Producer — メッセージ送信者
- Consumer — メッセージ受信者
- Broker — Kafkaサーバー
- Consumer Group — 負荷分散のためのコンシューマーグループ
Kafkaの利点
- 高スループット(毎秒数百万メッセージ)
- 水平スケーリング
- 長期メッセージストレージ
- 配信保証(at-least-once、exactly-once)
- レプリケーションによる耐障害性
応用
- イベント駆動アーキテクチャ — マイクロサービス通信
- ロギング — 一元的なログ収集
- データストリーミング — リアルタイム分析
- ETLパイプライン — データ統合
- IoT — デバイスデータ処理
エコシステム
- Kafka Connect — データベースコネクタ
- Kafka Streams — Javaでのストリーム処理
- ksqlDB — データストリーム用SQL
- Schema Registry — Avro/JSONスキーマ管理