天天看點

單機 搭建kafka叢集 本地_kafka單機僞叢集配置及kafka指令

部署環境如果是單機僞叢集的話可以考慮采用docker的方式,這樣友善快捷,容易管理,而且對實體機影響很小,好處多多。

鏡像可以去docker hub上選擇支援度,pull次數比較高的。當然如果有官方鏡像,優先選擇官方鏡像。

docker-compose.yaml

version: '3'

services:

zookeeper:

image: wurstmeister/zookeeper

ports:

- "2181:2181"

kafka:

image: wurstmeister/kafka

depends_on: [ zookeeper ]

ports:

- "9092:9092"

environment:

KAFKA_ADVERTISED_HOST_NAME: 47.106.143.76

KAFKA_CREATE_TOPICS: "imooc-kafka"

KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

volumes:

- /var/run/docker.sock:/var/run/docker.sock

等待docker-compose啟動容器完畢可以docker ps看一下鏡像

然後docker exec -it進入kafka容器可以運作以下kafka指令

# 建立Topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-topic

檢視已存在Topic清單

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

檢視指定Topic狀态

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-topic

啟動Consumer讀取消息并輸出到标準輸出

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic my-topic --from-beginning

運作Producer并将Terminal輸入的消息發送到服務端

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic << This is a messageThis is another message

性能測試

bin/kafka-producer-perf-test.sh --messages 500000 --message-size 1000 --batch-size 500 --topics test --threads 2 --broker-list localhost:9092 bin/kafka-consumer-perf-test.sh --zookeeper localhost:2181 --messages 500000 --topic test --threads 1

關于kafka叢集的想法:

通過docker-compose的方式可以搭建一個單機僞叢集,能否通過k8s叢集來實作kafka叢集,每個實體主機上有一組pod來執行個體broker,維護一個中心zookeeper。但是組裡的大佬說docker網絡容易出現問題,不能保證高可用。感覺這還是一個比較可行的方案。