通過Docker拉取鏡像的方式進行安裝
照例先去DockerHub找一下鏡像源,看下官方提供的基本操作(大部分時候官方教程比網上的要清晰一些,并且大部分教程可能也是翻譯的官方的操作步驟,所以直接看官方的就行)
老實說Kafka的引數配置項太多了,比較繁瑣,
如果是Linux環境下打算直接用官方提供的docker-compose直接讀取yml組態檔了
docker-compose.yml
version: "3"
services:
zookeeper:
image: 'bitnami/zookeeper:latest'
ports:
- '2181:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: 'bitnami/kafka:latest'
ports:
- '9092:9092'
environment:
- KAFKA_BROKER_ID=1
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
depends_on:
- zookeeper
直接運行即可
docker-compose up -d
官網同時還提供了Kafka without Zookeeper (KRaft)的配置方式
WIn10可以在Docker容器內部通過掛載組態檔,繼續用上面的方式,但我這里決定用繁瑣的方式一步步來
拉取Zookeeper和Kafka鏡像(可拉取最新版本,但我喜歡通過tags挑一個)
docker pull zookeeper:3.8
docker pull bitnami/kafka:3.1
在Docker容器內創建網路(連通Zookeeper和Kafka)
app-tier:網路名稱
–driver:網路型別為bridge
docker network create app-tier --driver bridge
啟動Zookeeper節點
在Docker run命令里加上--network app-tier,讓Zookeeper容器啟動后連接上創建的網路(并且允許匿名登陸)
docker run -d --name zookeeper-server --network app-tier -e ALLOW_ANONYMOUS_LOGIN=yes zookeeper:3.8
啟動kafka服務端
同樣的方式,讓Kafka服務端節點也連上這個網路
docker run -d --name kafka-server --network app-tier -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 bitnami/kafka:3.1
注意:
KAFKA_ADVERTISED_HOST_NAME為當前主機IP或地址(重點:如果是服務器部署則配服務器IP或域名否則客戶端監聽訊息會報地址錯誤)
kafka 節點啟動后,會向 zookeeper 注冊自己,同時告訴 zookeeper 自身的通信地址,這個地址就是組態檔中的 advertised.listeners,如果沒有配置 advertised.listeners,就會使用listeners,
啟動Kafka客戶端
Finally we create a new container instance to launch the Apache Kafka client and connect to the server created in the previous step:
docker run -it --rm --network app-tier -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 bitnami/kafka:3.1 kafka-topics.sh --list --bootstrap-server kafka-server:9092
Producer and consumer using external client
These clients, from the same host, will use localhost to connect to Apache Kafka.
#生產者創建Topic
kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic test
#消費者接收訊息
kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
最后發送個經典的Hello World做為測驗
kafka-server

kafka-client

最后推薦一個kafka的圖形化管理工具
kafka-map
訪問地址:http://服務器IP:9001/ #埠號看自己喜好修改映射
DEFAULT_USERNAME:默認賬號admin
DEFAULT_PASSWORD:默認密碼admin
GitHub地址:https://github.com/dushixiang/kafka-map/blob/master/README-zh_CN.md
Gitee地址 https://gitee.com/dushixiang/kafka-map
拉取鏡像
docker pull dushixiang/kafka-map:latest
啟動運行
docker run -d --name kafka-map --network app-tier -p 9001:8080 -v /opt/kafka-map/data:/usr/local/kafka-map/data -e DEFAULT_USERNAME=admin -e DEFAULT_PASSWORD=admin --restart always dushixiang/kafka-map:latest
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/543491.html
標籤:Java
