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的入門,更加深刻的知識還須要各位小夥伴一塊兒去探索。