kafka是乙個分布式流處理平台,不只是訊息佇列,kafka是apache的乙個頂級專案。
linkedin基於scalar編寫的乙個流處理平台,大資料平台對資料處理的時效性提出了更高的要求——最後開發了乙個基於zookeeper的分布式訊息系統——kafka。
kafka具有高吞吐量,高效能,實時以及高可用等特點,這些特點是訊息中介軟體暫時不具備的。
個人建議在linux的環境下進行安裝和學習kafka
wget
然後解壓,進入到指定目錄
tar -xzf kafka_2.13-2.7.0.tgz
cd kafka_2.13-2.7.0
進入之後,會看到如下目錄
drwxr-xr-x. 3 root root 4096 12月 16 22:03 bin
drwxr-xr-x. 2 root root 4096 12月 16 22:03 config
drwxr-xr-x. 2 root root 8192 2月 20 20:06 libs
-rw-r--r--. 1 root root 29975 12月 16 21:58 license
-rw-r--r--. 1 root root 337 12月 16 21:58 notice
drwxr-xr-x. 2 root root 44 12月 16 22:03 site-docs
進入到kafka中的config資料夾
其中有如下配置檔案
-rw-r--r--. 1 root root 906 12月 16 21:58 connect-console-sink.properties
-rw-r--r--. 1 root root 909 12月 16 21:58 connect-console-source.properties
-rw-r--r--. 1 root root 5321 12月 16 21:58 connect-distributed.properties
-rw-r--r--. 1 root root 883 12月 16 21:58 connect-file-sink.properties
-rw-r--r--. 1 root root 881 12月 16 21:58 connect-file-source.properties
-rw-r--r--. 1 root root 2247 12月 16 21:58 connect-log4j.properties
-rw-r--r--. 1 root root 2540 12月 16 21:58 connect-mirror-maker.properties
-rw-r--r--. 1 root root 2262 12月 16 21:58 connect-standalone.properties
-rw-r--r--. 1 root root 1221 12月 16 21:58 consumer.properties
-rw-r--r--. 1 root root 4674 12月 16 21:58 log4j.properties
-rw-r--r--. 1 root root 1925 12月 16 21:58 producer.properties
-rw-r--r--. 1 root root 6849 12月 16 21:58 server.properties
-rw-r--r--. 1 root root 1032 12月 16 21:58 tools-log4j.properties
-rw-r--r--. 1 root root 1169 12月 16 21:58 trogdor.conf
-rw-r--r--. 1 root root 1205 12月 16 21:58 zookeeper.properties
我們主要需要修改的是server.properties檔案
需要修改的配置項有如下幾個(其中的ipaddress,可以就是設定為對應的ip位址,如果是本機學習也不建議設定為localhost)
# 監聽的位址(現在暫時不用知道這個是做什麼的,ipaddress配置成本機ip即可)
listeners = plaintext://ipaddress:9092
advertised.listeners = plaintext://ipaddress:9092
##日誌檔案的目錄位址
log.dirs = /kafka/logs/
## zookeeper的配置,ipaddress配置成zookeeper伺服器所在的位址即可,如果有多個,逗號隔開即可。
zookeeper.connect=ipaddress:2181
zookeeper.connecion.timeout.ms=6000
直接執行如下命令,後台啟動kafka
bin/kafka-server-start.sh ../config/server.properties &
看到如下一行,可以判斷啟動成功
info [kafkaserver id=0] started (kafka.server.kafkaserver)
進入到kafka的bin目錄下執行停止指令碼即可
sh kafka-server-stop.sh
看到如下日誌說明kafka已經停止
[2021-02-27 17:38:55,546] info [kafkaserver id=0] shut down completed (kafka.server.kafkaserver)
基本的使用,只是簡單通過kafka傳送和接受乙個訊息的簡單例項。在總結這個例項之前,先熟悉幾個概念
topic:乙個虛擬的概念,由1到多個partitions組成。先簡單理解——用於暫存訊息的地方,有點類似於rabbitmq中的exchange的概念
partitions:實際訊息儲存單位,有點類似於rabbitmq中的queue的概念。
producer:訊息的生產者,將訊息推送到topic中
consumer:訊息的消費者,將會去topic中取訊息
進入到kafka的bin目錄,執行如下指令碼命令
sh kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_name
上面的topic_name就是建立的topic名稱。
同樣在bin目錄下,執行如下命令即可。
sh kafka-topics.sh --list --zookeeper localhost:2181
[root@localhost bin]
# sh kafka-topics.sh --list --zookeeper localhost:2181
helloworld_topic
我們這裡建立了乙個名為helloworld_topic的topic
在bin目錄下執行如下命令
sh kafka-console-producer.sh --broker-list 192.168.0.110:9092 --topic helloworld_topic
出現左箭頭的時候,表示連線到kafka的對應topic,然後隨便輸入幾個訊息即可。
同樣在bin目錄下執行如下命令指令碼
sh kafka-console-consumer.sh --bootstrap-server 192.168.0.110:9092 --topic helloworld_topic --from-beginning
可以獲取指定topic中的訊息
kafka簡單的安裝使用入門總結。
KaFka 安裝與基本使用
學了有一段時間的大資料了,學習新的元件,大部分安裝可以分為三步 上傳解壓,配置檔案,啟動。分享一下我的kafka安裝包 1 上傳解壓 2 進入到 usr local soft kafka 2.10 0.8.2.2 config 目錄下,修改server.properties檔案 3 因為kafka是...
Kafka的安裝與使用
kafka是乙個分布式的訊息佇列,一般在整個系統中起到解耦,削峰,非同步處理的作用。整個系統分為消費者和生產者,生產者往裡面寫入資料,消費者取出資料進行邏輯處理。其實zookeeper就是乙個服務註冊和發現中心。kafka使用zookeeper來進行動態的集群擴充套件,不需要修改客戶端的配置。在開啟...
pyenv virtualenv 的安裝與使用
1 安裝pyenv 建立安裝目錄 mkdir pyenvgit clone pyenv git clone pyenv plugins pyenv virtualenvecho export pyenv root home pyenv bash profile echo export path py...