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)
留言
張貼留言