Skip to content

DNET_KafkaTutorial

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Kafkaチュートリアル

概要

ver 2.7.0、Ubuntu 20.04(on WSL2)

詳細

Clientのインストール

Runtimeのインストール

Javaのインストール(BrokerだけでなくClientにも必要)

sudo apt update
sudo apt install default-jdk
java --version

Kafkaのダウンロード

wget https://archive.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz
tar xzf kafka_2.13-2.7.0.tgz
mv kafka_2.13-2.7.0 /usr/local/kafka
cd /usr/local/kafka
dir

Clientの設定

設定は特にない。以下のコマンドを実行できる。

cd /usr/local/kafka
bin/kafka-topics.sh --list --zookeeper localhost:2181

※ この段階ではブローカが存在しないので動かない。

Brokerのインストールと起動

ローカル

  • ローカルに入れたくなかったので、割愛する。
  • 参考中に、インストールについての記述記事あり。

Dockerで

以下を修正したdocker-compose-.ymlを使う。

https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose-single-broker.yml

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - ./docker.sock:/var/run/docker.sock

Clientを使って送受信

Topicを作成

$ bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test_topic
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic test_topic.
$ bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181
test
test_topic

Consumer

先に受信のためのConsumerを起動しておく。

$ bin/kafka-console-consumer.sh --bootstrap-server=127.0.0.1:9092 --topic=test_topic

Producer

別のターミナルでProducerを起動して送信。

$ bin/kafka-console-producer.sh --broker-list=127.0.0.1:9092 --topic=test_topic
>this is a test message.
>hello world!

すると、Consumer側に以下のメッセージが表示される。

this is a test message.
hello world!

参考

Fusic Tech Blog

Docker Compose

マイクロソフト系技術情報 Wiki

補足:Kafka 3.x 以降は ZooKeeper に依存しない KRaft モードが標準となり、 Kafka 4.0(2025 年)で ZooKeeper モードは削除された。 --zookeeper オプションも既に廃止されており、現在は --bootstrap-server を使用する。

移行メモ

  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「Azure Event Hubs で」「Kafka .NET クライアント で」)は、 GitHub Wiki では見出しからアンカが生成されるため、 見出しをプレーン・テキストとし、リンクは直下の本文に置いた。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Azure Event Hubsチュートリアル / Kafka .NET クライアント に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替えた。
  • 元 Wiki の行頭空白によるプレフォーマット・ブロックは、 フェンス付きコードブロックにした。

Tags: 移行, Apache Kafka, チュートリアル, ZooKeeper, Docker Compose, Producer, Consumer, WSL2, KRaft

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally