快速启动
# 简单快速起一个 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