docker安装kafka4.0.0
记录Windows环境使用docker安装最新版kafka4.0.0,以及遇到的一些坑。
记录Windows环境使用docker安装最新版kafka4.0.0,以及遇到的一些坑。
kafka3.3开始移除了对zookeeper的依赖,改为KRaft共识协议,自己管理元数据,简化了架构
前些年使用的wurstmeister/kafka镜像已不再维护,最近更新的版本为2.8.1,比较旧了。
现在可直接使用官方进行安装
docker安装kafka
拉取镜像
docker pull apache/kafka:4.0.0
安装镜像
docker run -d --name my_kafka -p 9092:9092 -p 9093:9093 ^
--env CLUSTER_ID=5L6g3nShT-eMCtK--X86sw ^
--env KAFKA_PROCESS_ROLES=broker,controller ^
--env KAFKA_NODE_ID=1 ^
--env KAFKA_CONTROLLER_QUORUM_VOTERS=1@host.docker.internal:9093 ^
--env KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 ^
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://host.docker.internal:9092 ^
--env KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT ^
--env KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER ^
--env KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT ^
--env KAFKA_AUTO_CREATE_TOPICS_ENABLE=true ^
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 ^
--env KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 ^
--env KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 ^
apache/kafka:4.0.0
docker安装kafka-ui
docker run -d --name my_kafka_ui -p 8089:8080 ^
-e KAFKA_CLUSTERS_0_NAME=local ^
-e KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=host.docker.internal:9092 ^
provectuslabs/kafka-ui

遇到的坑
springboot集成kafka后,生产者可正常发消息,消费者无法消费
查看docker中kafka持续在打印日志:
INFO Sent auto-creation request for Set(__consumer_offsets) to the active controller. (kafka.server.DefaultAutoTopicCreationManager)
INFO Sent auto-creation request for Set(__consumer_offsets) to the active controller. (kafka.server.DefaultAutoTopicCreationManager)
KRaft模式需要显示设置内部主题副本数KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR,单节点必须设置为1,否则默认3导致创建失败
--env KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
类似的需要设置
--env KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1 ^
--env KAFKA_TRANSACTION_STATE_LOG_MIN_ISR=1 ^
否则事务消息发送异常
更多推荐
所有评论(0)