30分鐘瞭解如何使用Kafka

Kafka是當下對海量數據提供了最佳支持的MQ中間件,不管是高併發的處理,仍是依託zookeeper的水平拓展都有不俗的特性。因爲公司最近也在嘗試如何將它應用到開發中以對業務更好的支撐,所以特意分享一些安裝和使用的心得。java

1、安裝與啓動linux

服務器環境採用CentOS 7 x64位系統。實際使用中Kafka依賴Zookeeper進行Broker管理,測試環境咱們能夠只使用Kafka自帶的Zookeeper。bootstrap

Kafka運行依賴JVM,首先須要安裝Java服務器

java-1.8.0-openjdk-1.8.0
java-1.8.0-openjdk-devel

解壓Kafka並將解壓的文件放置到系統目錄下併發

tar -zxvf kafka_2.12-2.1.0.tgz
mv kafka_2.12-2.1.0 /usr/local/kafka

進入kafka下的config目錄,打開zookeeper.properties文件,肯定端口號(默認:2181)app

打開server.properties文件修改如下配置高併發

broker.id=1 #這個屬性是kafka須要提交給zookeeper註冊的Key
num.partitions=3 #主題的默認分區數,可選修改,默認爲1
listeners=PLAINTEXT://<host>:9092 #配置當前主機ip,這個是broker的通訊地址
zookeeper.connect=localhost:2181 #zookeeper的地址
group.initial.rebalance.delay.ms=3 #集羣環境下的節點平衡時間,默認是0

啓動服務工具

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties #啓動zookeeper服務
bin/kafka-server-start.sh -daemon config/server.properties #啓動kafka服務

最後Jps查看結果測試

> 13587 Kafka
> 13604 Jps
> 13269 QuorumPeerMain

2、建立主題——生產者與消費者google

建立主題

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

咱們分別指定了操做類型(create),主題(test),zookeeper的地址(localhost:2181),分區數(1),副本數(1)

查詢主題

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

啓動生產者

bin/kafka-console-producer.sh --topic test --broker-list <host>:9092

打開另外一個終端啓動消費者監聽test主題

bin/kafka-console-consumer.sh --topic test --bootstrap-server  <host>:9092 --from-beginning

3、使用輔助Web工具:kafka-mamage

下載:網上的資源不少,不樂意從百度雲下載的能夠在個人QQ羣獲取(960652410)

修改配置文件application.conf

kafka-manager.zkhosts="localhost:2181"

後臺啓動

nohup ./bin/kafka-manager -Dconfig.file=./conf/application.conf -Dhttp.port=8080 >kafka-manager.log 2>&1 &

具體操做網上有大量的現成案例,我主要想說一下爲何選擇kafka-manager。按照別人的說法彷佛KafkaOffsetMonitor是最佳選擇,可是KafkaOffsetMonitor是使用AngularJs開發的頁面工具,js資源須要google的支持(防火長城瞭解一下)。因此權衡再三,我仍是選擇了後者。固然有興趣的同窗也能夠根據實際狀況本身開發一個監控工具,因爲kafka提供了librdkafka的C/C++開源庫本身寫一個簡單難度其實也不大。個人羣裏就有我本身使用Qt開發的linux版本的監聽工具。 

 

後記:這裏僅僅是對Kafka的入門,更加深刻的知識還須要各位小夥伴一塊兒去探索。

相關文章
相關標籤/搜索