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 負責主題及消息。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxwQsqDrU5f9HA8Oauq7IjqKUg7uwh1kppLalZ4Xu78KEEkYbqISxnmub_rR12LNq20cOmJM2qafJKGt53mE65J302CDeezwdv1_n9z9K2XmYoQRwDEetDwM2PNllLEQ-2El1RiKNU22I/s640/2018-08-28+15-24-57+%25E7%259A%2584%25E8%259E%25A2%25E5%25B9%2595%25E6%2593%25B7%25E5%259C%2596.png)
我們建立 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)
留言
張貼留言