搭建單機版的kafka

Kafka介紹

Kafka已經不僅僅是一個消息系統,它還是一個存儲系統和流處理平臺。因為其高可用,可水平擴展,可持久化,可處理流數據而被大數據領域廣泛使用。

資源準備

linux centos7服務器
最近騰訊云在搞618活動
【騰訊云】618云聚惠,百款云產品限量搶購,1核2G云服務器首年95元
https://cloud.tencent.com/act/cps/redirect?redirect=1059&cps_key=4af64fef8b27cbf2ed77ea881690abbd&from=console

kafka下載
http://kafka.apache.org/downloads

百度網盤下載
鏈接:https://pan.baidu.com/s/1i-PviRc4im4Osa23EPRkqA
提取碼:obr1

zookeeper下載(高版本的kafka安裝包里面已經集成了zookeeper,本文還是采用外部的zookeeper)
https://zookeeper.apache.org/releases.html

百度網盤下載
鏈接:https://pan.baidu.com/s/1mOmiI0UXsPaeOBfv9tYFBg
提取碼:b7zs

Zookeeper配置和啟動

把安裝包上傳到opt目錄并解壓

  • tar zxvf kafka_2.12-2.5.0.tgz


    image.png
  • tar zxvf apache-zookeeper-3.6.1-bin.tar.gz


    image.png

Zookeeper配置和啟動

  • 進入zookeeper的conf目錄,將zoo-samples.cfg文件重命名為zoo.cfg:
    mv zoo-samples.cfg zoo.cfg

  • 編輯zoo.cfg文件:
    vi zoo.cfg

  • 我就直接貼出我的配置了

# zookeeper服務器心跳時間,單位為ms
tickTime=2000

# 投票選舉新leader的初始化時間
initLimit=10

# leader與follower心跳檢測最大容忍時間,響應超過tickTime * syncLimit, leader認為follower死掉, 從服務器列表中剔除該follower
syncLimit=5

# 數據目錄
dataDir=/tmp/zookeeper/data

# 日志目錄
dataLogDir=/tmp/zookeeper/log

# zookeeper對外服務端口
clientPort=2181

其中dataDir和dataLogDir分別配置數據目錄和日志目錄,這兩個目錄需要事先建好

  • 啟動zookeeper
    ./bin/zkServer.sh start

  • 查看zookeeper狀態
    ./bin/zkServer.sh status


    image.png

Kafka配置和啟動

進入kafka的config目錄,編輯server.properties文件

主要需要配置的有:

  • broker.id


    image.png

如果是集群的話,保證每個kafka實例的broker.id唯一

  • listeners


    image.png

配置kafka對外提供服務的地址

  • log.dirs


    image.png

kafka日志地址,需要先把目錄建好

  • zookeeper.connect


    image.png

kafka注冊的zookeeper地址

啟動kafka

./bin/kafka-server-start.sh -daemon config/server.properties

測試kafka啟動沒有


image.png

創建一個topic并制定分區和副本集

./bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic topic-example --replication-factor 1 --partitions 1

image.png

創建消費者

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-example

image.png

創建生產者

./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-example

image.png

測試輸入一些內容:


image.png

然后查看消費者是否有收到消息


image.png

ok,消費者也收到消息了!

查看topic詳情

./bin/kafka-topics.sh --zookeeper localhost:2181/kafka --describe --topic topic-example

image.png

可以看到很多信息,比如分區數,分區副本數,ISR集合,是否leader等。。。

參考

https://weread.qq.com/web/reader/e9a32a0071848698e9a39b8k8f132430178f14e45fce0f7
https://www.cnblogs.com/alinainai/p/12951619.html
https://www.cnblogs.com/alinainai/p/12952227.html

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。