Kafka 安装和搭建 (一)
生活随笔
收集整理的這篇文章主要介紹了
Kafka 安装和搭建 (一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Kafka 安裝和測試
- 博客分類:?
- middleware
kafka (官網地址:http://kafka.apache.org)是一款分布式消息發布和訂閱的系統,具有高性能和高吞吐率。?
?
i. 消息的發布(publish)稱作producer,消息的訂閱(subscribe)稱作consumer,中間的存儲陣列稱作broker。
ii. 多個broker協同合作,producer、consumer和broker三者之間通過zookeeper來協調請求和轉發。?
iii. producer產生和推送(push)數據到broker,consumer從broker拉取(pull)數據并進行處理。?
iv. broker端不維護數據的消費狀態,提升了性能。?
v. 直接使用磁盤進行存儲,線性讀寫,速度快:避免了數據在JVM內存和系統內存之間的復制,減少耗性能的創建對象和垃圾回收。?
vi. Kafka使用scala編寫,可以運行在JVM上。?
2. 安裝:?
a. 首先安裝JRE/JDK?
Linux安裝JDK?
b. 下載kafka?
進入下載頁面:http://kafka.apache.org/downloads.html?
選擇Binary downloads下載 (Source download需要編譯才能使用)?
也可以直接在linux終端下載:?
Shell代碼??
c. 解壓?
Shell代碼??
目錄:?
/bin 啟動和停止命令等。?
/config 配置文件?
/libs 類庫?
d. 修改配置?
Kafka默認開啟JVM壓縮指針,但只是在64位的HotSpot VM受支持,如果安裝了32位的HotSpot VM,需要修改/bin/kafka-run-class.sh文件?
Shell代碼??
找到如下行:?
Sh代碼??
去除-XX:+UseCompressedOops參數?
3. 啟動和停止?
啟動Zookeeper server:?
Shell代碼??
&是為了能退出命令行?
啟動Kafka server:?
Shell代碼??
停止Kafka server?
Shell代碼??
停止Zookeeper server:?
Shell代碼??
4. 單機連通性測試?
運行producer:?
Shell代碼??
早版本的Kafka,--broker-list localhost:9092需改為--zookeeper localhost:2181?
運行consumer:?
Shell代碼??
在producer端輸入字符串并回車,查看consumer端是否顯示。?
5. 分布式連通性測試?
Zookeeper Server, Kafka Server, Producer都放在服務器server1上,ip地址為192.168.1.10?
Consumer放在服務器server2上,ip地址為192.168.1.12。?
分別運行server1的producer和server2的consumer,?
Shell代碼??
Shell代碼??
在producer的console端輸入字符串,consumer報Connection refused錯誤:?
broker, producer和consumer都注冊到zookeeper上,producer和consumer的參數明確指定。問題出在broker的配置文件server.properties上:?
Properties代碼??
host名稱沒有指定,就是127.0.0.1,consumer去broker拿數據就有問題。設置為192.168.1.10,重啟服務就好了。 ==================================================================================================== 注意:配置的時候一定要把host.name這項打開,寫上真是IP,所有的配置項最好都寫真是IP,不要寫localhost或者127.0.0.1容易出幺蛾子.
還有一個值得注意的問題是,按照上面的說的做,實際操作中發現,consumer消費消息的時候總是出錯,我弄了一邊又一遍,把zookeeper和kafka的版本換了又換弄了兩天才發現需要在系統下配置點東西才行,具體錯誤就是? InetAddress.getLocalHost() java.net.UnknownHostException 異常? java.net.InetAddress.getLocalHost會拋出java.net.UnknownHostException異常. 之類的,Java異常, 解決辦法: 在/etc/hosts 文件中添加如下(znskftc是主機名) 127.0.0.1 ? znskftc ================================================================== 多個broker時,shell版的producer應該鏈接哪個broker呢(producer和broker沒有負載均衡,consumer和broker的負載均衡有zookeeper來負責)? 鏈接哪個broker都可以的(實測),但是建立topic的時候replication-factor后面的數字要不能小于broker的數目? bin/kafka-topics.sh --create --zookeeper 172.16.6.78:2181 --replication-factor 1 --partitions 1 --topic test
================================================================== 后記: 若果看了上面的博客搭建還是失敗的話,建議看看下面這些視頻 kafka 消息處理過程與集群維護:
http://www.jikexueyuan.com/course/2238.html
Kafka 核心源碼剖析:
http://www.jikexueyuan.com/course/2362.html
Kafka 基礎實戰 :消費者和生產者實例:
http://www.jikexueyuan.com/course/2036.html
kafka的初認識
http://www.jikexueyuan.com/course/1716.html
kafka官方說明文檔(英文版,網上大多博客都是翻譯這篇文章的): http://kafka.apache.org/documentation.html#quickstart
總結
以上是生活随笔為你收集整理的Kafka 安装和搭建 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zookeeper 安装和配置---学习
- 下一篇: 关于多线程的一点感想