Kafka (1) Hello world

Kafka 的官網 https://kafka.apache.org/ 可以下載 Kafka套件。

Kafka 的安裝簡單來說就是解壓縮到 /usr/local, 可以考慮把解壓縮路徑設成 KAFKA_HOME (e.g. export KAFKA_HOME=/usr/local/kafka_2.11-2.0.0) 這樣移動會比較方便。

1. Hello world:

開啟 zk server:

$ zookeeper-server-start.sh ../config/zookeeper.properties

開啟 kafka server:

$ kafka-server-start.sh ../config/server.properties

創一個新的 topic:

$ kafka-topics.sh --create \
    --zookeeper localhost:2181 \
    --replication-factor 1 \
    --partitions 1 \ 
    --topic test

$ kafka-topics.sh --list --zookeeper localhost:2181
test

創一個 cosumer,cosumer 可以用來訂閱某 topic 的訊息:

$ kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test

創一個 producer,它可以對 topic 發布消息:

$ kafka-console-producer.sh \
  --broker-list localhost:9092 \
  --topic test

你在 producer 的 console 打字的話 consumer 的 console 會同步顯示。


2. 原理解釋:

上例中我們先開啟一個 zk(預設是使用 port 2181) 用來管理 kafka broker,再開啟一個 kafka broker (預設是 port 9092)。zk 會管理 broker,broker 負責主題及消息。

我們建立 topic 後就可以對該 topic 進行訂閱和發佈消息,這個概念有點像 youtube 的訂閱和發佈。上例我們使用 console 的方式進行消息的訂閱和發佈。


3. 使用套件的 zk:

一般來說是使用套件的 zk,zk 的官網 https://zookeeper.apache.org/,安裝的話一樣解壓縮到 /usr/local 就可以了。

$ cd /usr/local/zookeeper-3.4.13/bin
$ zkServer.sh start /usr/local/zookeeper-3.4.13/conf/zoo.cfg
$ zkServer.sh stop /usr/local/zookeeper-3.4.13/conf/zoo.cfg

後面的 /usr/local/zookeeper-3.4.13/conf/zoo.cfg 是 configure file 的路徑,不加的話會用預設路徑。


Reference:

[1] Kafka: The Definitive Guide, Neha Narkhede, Gwen Shapira, and Todd Palino , O’Reilly Media(2017)

留言

熱門文章