docker compose中的卡夫卡:主题不在broker的首选副本中



我正在运行一个测试kafka"集群";由一个Kafka代理和一个来自docker compose的Zookeeper节点组成,使用以下(官方(docker-compose.yml:

---
version: '2'

services:
zookeeper:
image: confluentinc/cp-zookeeper:6.0.0
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000

broker:
image: confluentinc/cp-kafka:6.0.0
hostname: broker
container_name: broker
depends_on:
- zookeeper
ports:
- "29092:29092"
environment:
KAFKA_BROKER_ID: 101
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0

在开始这个";集群";使用docker-compose up,我成功地使用控制台命令创建了一个主题:

docker exec broker kafka-topics --create --topic myTopic --bootstrap-server localhost:29092 --replication-factor 1 --partitions 1

并通过Golang生产者以编程方式创建消息,同时通过控制台客户端((收听消息

docker exec broker kafka-console-consumer --from-beginning --bootstrap-server localhost:29092 --topic myTopic --timeout-ms 15000

每隔一段时间,控制台消费者和Golang程序生产者都会挂起并停止连接到kafka。当我查看Kafka broker的日志来找出问题所在时,我看到了一堵墙,上面重复着关于主题不在首选副本中的消息,其结构如下:

broker       | [2021-05-09 06:08:50,144] INFO [Controller id=101] Processing automatic preferred replica leader election (kafka.controller.KafkaController)
broker       | [2021-05-09 06:08:50,149] TRACE [Controller id=101] Checking need to trigger auto leader balancing (kafka.controller.KafkaController)
broker       | [2021-05-09 06:08:50,165] DEBUG [Controller id=101] Topics not in preferred replica for broker 101 HashMap() (kafka.controller.KafkaController)
broker       | [2021-05-09 06:08:50,166] TRACE [Controller id=101] Leader imbalance ratio for broker 101 is 0.0 (kafka.controller.KafkaController)

你能解释一下出了什么问题吗?如果只有一个分区和一个代理,如何分配错误的复制副本?

我不认为这一小段日志是你的问题

这些日志显示,没有不在首选副本集中的主题。。。它正在打印一个空的Hashmap

同样,不平衡率为零,因此集群是完全平衡的

最新更新