Kafka 容器之 bitnami/kafka

By | 2022年11月7日

快速启动

# 简单快速起一个 kafka 容器,数据目录映射到 /home/kafka-data
docker run -it --name kafka-server -v /home/kafka-data:/bitnami/kafka -e ALLOW_PLAINTEXT_LISTENER=yes -e KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.3.223:2181 -e  KAFKA_CFG_NUM_PARTITIONS=100 -e ALLOW_PLAINTEXT_LISTENER=yes bitnami/kafka:2.8.1

DockerHub 地址:https://hub.docker.com/r/bitnami/kafka

Admin角色 – Topic操作

#创建 Topic(2个分区和1个副本)
docker run -it --rm -v /home/config.properties:/opt/kafka/config.properties bitnami/kafka:3.1.2 kafka-topics.sh --create  --topic mytopic  --partitions 2 --replication-factor 1 --bootstrap-server 192.168.3.112:9093 --command-config /opt/kafka/config.properties

#修改 Topic(增加到3个分区,不能降分区)
docker run -it --rm -v /home/config.properties:/opt/kafka/config.properties bitnami/kafka:3.1.2 kafka-topics.sh --alter --topic mytopic --partitions 3 --bootstrap-server 192.168.3.112:9093 --command-config /opt/kafka/config.properties

#查看 Topic 列表
docker run -it --rm -v /home/config.properties:/opt/kafka/config.properties bitnami/kafka:3.1.2 kafka-topics.sh --list  --bootstrap-server 192.168.3.112:9093 --command-config /opt/kafka/config.properties

#查看 Topic 分区和副本
docker run -it --rm -v /home/config.properties:/opt/kafka/config.properties bitnami/kafka:3.1.2 kafka-topics.sh --describe  --bootstrap-server 192.168.3.112:9093 --command-config /opt/kafka/config.properties

#删除 Topic
docker run -it --rm -v /home/config.properties:/opt/kafka/config.properties bitnami/kafka:3.1.2 kafka-topics.sh --delete --bootstrap-server 192.168.3.112:9093 --topic mytopic --command-config /opt/kafka/config.properties

说明:
(1)上面的 kafka-topics.sh 对应 SpringBoot 中的 admin 角色,可以操作 topic。
(2)由于使用 SASL_PLAINTEXT 安全认证,所以上面映射了 config.properties,文件内容:

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"xxx\" password=\"yyy\";
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN

producer角色

consumer角色

默认从最新消息开始消费。

# 指定组
docker run -it --rm -v /root/config.properties:/opt/kafka/consumer.properties bitnami/kafka:3.1.2 kafka-console-consumer.sh --consumer.config /opt/kafka/consumer.properties --bootstrap-server 192.168.3.222:9093 --topic mytopic1 --group 1

# 指定组、分区
docker run -it --rm -v /root/config.properties:/opt/kafka/consumer.properties bitnami/kafka:3.1.2 kafka-console-consumer.sh --consumer.config /opt/kafka/consumer.properties --bootstrap-server 192.168.3.222:9093 --topic mytopic1 --group 1 --partition 1

其他参数可参考:https://blog.csdn.net/qq_29116427/article/details/80206125

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注