创建网络
docker network create kafka-net --driver bridge
启动zookeeper
# 下载 zookeeper 镜像
docker pull bitnami/zookeeper
# 启动 zooker容器
docker run -d --name zookeeper-server --network kafka-net -e ALLOW_ANONYMOUS_LOGIN=yes bitnami/zookeeper
启动kafka 服务
# 下载 kafka镜像
docker pull bitnami/kafka
# 启动 kafka服务01
docker run -d --name kafka-server01 --network kafka-net -p 9092:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://10.154.132.105:9092 bitnami/kafka
# 启动kafka服务02
docker run -d --name kafka-server02 --network kafka-net -p 9093:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 -e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://0.0.0.0:9093 bitnami/kafka
创建主题
docker exec -it kafka-server01 /bib/bash
/opt/bitnami/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test
生成者生成数据
docker exec -it kafka-server01 /bib/bash
# 指定主题
/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
>123
>456
>789
消费者消费数据
docker exec -it kafka-server01 /bib/bash
# 指定主题
/opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --daemon
123
456
789
python 链接kafka服务
# 下载kafka相关python包
# pip install kafka-python
from kafka import KafkaProducer, KafkaConsumer
# 生产者示例
producer = KafkaProducer(bootstrap_servers='localhost:9092')
topic = 'test'
# 发送消息
producer.send(topic, b'Hello, Kafka!')
# 关闭生产者
producer.close()
# 消费者示例
consumer = KafkaConsumer(topic, bootstrap_servers='localhost:9092', auto_offset_reset='earliest')
# 消费消息
for message in consumer:
print(f"Received message: {message.value.decode('utf-8')}")
# 关闭消费者
consumer.close()
网友评论