消息中間件之kafka(一)安裝使用

  1. 首先,我們知道kafka是一個消息中間件。我們先安裝一個來操作一下,因爲我們是開發環境,所以我們這裏採用方便的docker進行安裝。
    啓動zookeeper
docker run -d --name zookeeper --publish 2181:2181 \--volume /etc/localtime:/etc/localtime \--restart=always \wurstmeister/zookeeper

啓動kafka,注意在運行的時候需要把對應的IP換成自己的IP地址

docker run -d --name kafka --publish 9082:9092 \--link zookeeper:zookeeper \--env KAFKA_BROKER_ID=100 \--env HOST_IP=192.168.1.108 \--env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \--env KAFKA_ADVERTISED_HOST_NAME=192.168.1.108 \--env KAFKA_ADVERTISED_PORT=9082 \--restart=always \--volume /etc/localtime:/etc/localtime \wurstmeister/kafka

啓動kafka的管理頁面,這個可以啓動也可以不啓

docker run -d --name kafka-manager \--link zookeeper:zookeeper \--link kafka:kafka -p 9001:9000 \--restart=always \--env ZK_HOSTS=zookeeper:2181 \sheepkiller/kafka-manager
  1. 測試一下消息的發送與接收
    我們這裏使用的是docker安裝的,我們首先需要進入一下docker

查詢dockerID,可以從第一列看到容器ID

docker ps 

在這裏插入圖片描述
以下命令請將ID換成對應ID

docker exec -it 46e0e009c508 /bin/bash  
#切換到對應目錄
cd /opt/kafka_2.12-2.5.0/bin/
#創建一個topic,replication-factor 
#副本數量不能大於broker的數量
#partitions 是我們隊列的數量,一個partion在同一個消費者組內只能有一個消費者,如果我們想使用多個消息者進行消費,我們可以在裏設置多個partion
 ./kafka-topics.sh --create --zookeeper 192.168.3.17:2181 --replication-factor 1 --partitions 1 --topic test520
#查詢創建的topics
./kafka-topics.sh --list --zookeeper 192.168.3.17:2181

開啓一個消息者

#1、消費者在同一個組內只能消費一次消息,如果想要兩個客戶端分別消費同一個消息,可以設置爲兩個組
#2、消費者消費完消息後,kafka不會刪除此消息。它只會改變它的offset值。待等失效時間過了,消息纔會刪除(默認爲7天)。
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --consumer-property group.id=testGroup -consumer-property client.id=consumer-1 --topic test520

開啓一個生產者

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

測試完成後,我們可以看到。當我們生產端發送一條消息的時候,我們的消息者就可以收到對應的消息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章