1. 程式人生 > >阿里雲 centos7 系統下 外網kafka(用自帶的zookeeper) 搭建筆記

阿里雲 centos7 系統下 外網kafka(用自帶的zookeeper) 搭建筆記

kafka 下載

http://kafka.apache.org/downloads

你可以選擇 用xshell 來安裝檔案上傳外掛

在xshell 中執行命令 yum install  lrzsz -y  然後進入放你kakfa的目錄 

我kafka的目錄為 /server

命令 cd ./server

rz 彈出檔案選擇框 選擇你下載的檔案 然後等待上傳完畢

也可以選擇 下載 winscp 這個桌面軟體

頁面如下 直接複製黏貼就好

檔案上傳後 執行命令

tar -zxvf +kafka檔名 解壓檔案

在這裡我的命令是 tar -zxvf kafka_2.11-2.1.0.tgz

mv tar -zxvf kafka_2.11-2.1.0.tgz kafka

這裡是為了 之後 找這個資料夾更容易些

然後更改配置檔案 進入config 資料夾 

配置zookeeper.properties 加入如下屬性
maxClientCnxns=0
tickTime=2000
initLimit=10
syncLimit=5

然後配置server.properties 其他的屬性 不用動只需要 修改
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://47.92.73.124(你的外網ip):9092

首先 吧2181 埠和9092埠 加入阿里雲的安全組 這是必要的

開放你的防火牆(我這裡沒用iptables 直接用的firewall)

firewall-cmd --zone=public --add-port=2181/tcp --permanent

firewall-cmd --zone=public --add-port=9092/tcp --permanent

然後更新防火牆

firewall-cmd --reload

如果你是自己的測試伺服器 記憶體不大 記得修改 kafka-server-start.sh 指令碼,修改 KAFKA_HEAP_OPTS 處 -Xmx 和 -Xms 的值

這是 設定kafka佔用的記憶體

然後開始啟動kafka

在之前改了名字的kafka目錄下 執行命令(以下是用我自己路徑進行的)

首先必須要有Java的環境 沒有的話 自行百度在此不再贅述

執行命令 啟動zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties

成功輸出大量無error日誌

執行命令 啟動kafka

bin/kafka-server-start.sh config/server.propertie

成功輸出大量無error日誌

建立topic 

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

成功出現Created topic "test  

partitions 這個屬性是 指定你建立的topic 具有多少分割槽

下面命令 檢視該zookeeper中有多少 topic

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

成功 輸出 剛才你建立的topic

建立生產者

bin/kafka-console-producer.sh --broker-list 172.26.198.123:9092 --topic kafkatest

執行 出現 > 後面可以輸入字元為正確

建立消費者

bin/kafka-console-consumer.sh --bootstrap-server 172.26.198.123:9092 --topic kafkatest--from-beginning

在生產者中輸入訊息 即可在消費者中看到 那麼本地就成功了

有個題外的話題 就Java呼叫的問題 

關於Java端呼叫失敗問題
1.當一直連線錯誤的時候 有可能是安裝路徑下的server.properties 配置檔案中的 localhost沒有配置
需要配置以後 才能遠端連線其他伺服器的kafka
2.當使用消費者獲取資料的時候 一直報錯為空指標 這個問題可能是 kafka的版本和你jar包的版本不匹配 這個時候 降低你
kafka連線工具的版本即可我當前使用的是0.8.1.1版本

外網測試 自己在Java上測試 或者 在本地搭建一個 kafka環境 然後通過上面的zookeeper的ip來建立消費者 即可