Apache Kafkaとは?リアルタイムデータストリーミングを初心者向けに解説【2026年版】
オープンソースラボ編集部 ・ 2026年6月13日
「毎秒数百万件のイベントをリアルタイムに処理したい」「マイクロサービス間のメッセージ配信を確実にしたい」——これを解決するのがApache Kafkaです。本記事で初心者向けに解説します。
Kafkaとは
Apache Kafka(公式サイト↗)はLinkedIn発のオープンソース分散メッセージストリーミングプラットフォームです。毎秒数百万件のメッセージを低レイテンシ・高信頼性で処理できます。
主要概念の図解
[Producer(データ生成者)]
→ トピック(テーマ別チャンネル)
├ パーティション0 → [Consumer A]
├ パーティション1 → [Consumer B]
└ パーティション2 → [Consumer C]
↑
[Broker(Kafkaサーバー)]
| 概念 | 説明 |
|---|---|
| Topic | メッセージの分類カテゴリ(例:user-events) |
| Producer | メッセージを送信するアプリ |
| Consumer | メッセージを受信・処理するアプリ |
| Broker | Kafkaサーバー(クラスター構成) |
| Partition | トピックの水平分割(並列処理の単位) |
Kafkaを使うべきユースケース
| ユースケース | 例 |
|---|---|
| リアルタイムイベント処理 | クリック・購入・ログインイベント |
| マイクロサービス連携 | 注文→在庫→配送サービス間の通知 |
| ログ集約 | 複数サーバーのログを一元収集 |
| ストリーム分析 | リアルタイムダッシュボード・不正検知 |
| CDC(変更データキャプチャ) | DB更新をリアルタイムに他システムへ伝播 |
Dockerでローカル起動
# docker-compose.yml
services:
kafka:
image: apache/kafka:latest
ports:
- "9092:9092"
environment:
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
from kafka import KafkaProducer, KafkaConsumer
import json
# Producer
producer = KafkaProducer(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.dumps(v).encode('utf-8')
)
producer.send('user-events', {'event': 'login', 'user_id': 123})
# Consumer
consumer = KafkaConsumer(
'user-events',
bootstrap_servers='localhost:9092',
value_deserializer=lambda v: json.loads(v.decode('utf-8'))
)
for message in consumer:
print(message.value)
DevOps関連OSSはDevOpsカテゴリから。可観測性の構築はOpenTelemetry解説記事も参照。
Kafkaの代替OSS比較
| ツール | 特徴 | Kafka比 |
|---|---|---|
| Redpanda | Kafka完全互換・Rust製・高速 | ✅ 移行コストゼロ |
| Apache Pulsar | マルチテナント・Geo-Replication | 高機能 |
| RabbitMQ | シンプルなメッセージキュー | 軽量 |
Redpanda(公式サイト↗)はKafka APIと完全互換で、ZooKeeper不要・Rust製で最大10倍高速です。新規構築ならRedpandaが2026年のおすすめです。Kafkaの詳細はツールページも参照。
まとめ
Kafkaはリアルタイムストリーミングのデファクトスタンダードです。新規プロジェクトにはRedpandaも有力な選択肢。まずローカルDockerで試してみてください。
よくある質問(FAQ)
Q. KafkaとRedisのPub/Subはどう違いますか?
Redis Pub/Subはメモリ上の揮発性メッセージ送信(消費後に消える)です。Kafkaは永続化してリプレイ可能・コンシューマーグループで並列処理できる点が根本的に異なります。
Q. Kafkaは小規模サービスでも使いますか?
小規模なら設定・運用の複雑さがオーバーキルになる可能性があります。まずRabbitMQやRedisで十分か検討し、スケールが必要になってからKafkaへ移行する判断が合理的です。
Q. マネージドKafkaサービスは何がありますか?
AWS MSK・Confluent Cloud・Redpanda Cloud・Upstash Kafkaが代表的です。セルフホストの複雑さを避けたい場合に使えます。
関連リンク・公式情報
ここで紹介したツールの一次情報(公式サイト・ソースコード)と、オープンソースラボ内の関連ページをまとめました。導入検討の際にご活用ください。
公式サイト・ソースコード(外部リンク)
オープンソースラボの関連ページ(内部リンク)
