Kafka 生产者不通过分区分发消息
Kafka producer not distributing messages over partitions
我正在创建 kafka 主题如下:
kafka-topics --create --zookeeper xx.xxx.xx:2181 --replication-factor 2 --partitions 200 --topic test6 --config retention.ms=900000
然后我使用以下库使用 golang 生成消息:
"gopkg.in/confluentinc/confluent-kafka-go.v1/kafka"
生产者配置如下所示:
for _, message := range bigslice {
topic := "test6"
p.Produce(&kafka.Message{
TopicPartition: kafka.TopicPartition{Topic: &topic},
Value: []byte(message),
}, nil)
}
我发送了超过 200K 条消息但它们都落在分区 0 中的问题。
在这种情况下可能出了什么问题?
正在将具有相同密钥的邮件添加到同一分区。如果不是这种情况,请尝试包含 Partition: kafka.PartitionAny
:
for _, message := range bigslice {
topic := "test6"
p.Produce(&kafka.Message{
TopicPartition: kafka.TopicPartition{Topic: &topic, Partition: kafka.PartitionAny},
Value: []byte(message),
}, nil)
}
我正在创建 kafka 主题如下:
kafka-topics --create --zookeeper xx.xxx.xx:2181 --replication-factor 2 --partitions 200 --topic test6 --config retention.ms=900000
然后我使用以下库使用 golang 生成消息:
"gopkg.in/confluentinc/confluent-kafka-go.v1/kafka"
生产者配置如下所示:
for _, message := range bigslice {
topic := "test6"
p.Produce(&kafka.Message{
TopicPartition: kafka.TopicPartition{Topic: &topic},
Value: []byte(message),
}, nil)
}
我发送了超过 200K 条消息但它们都落在分区 0 中的问题。
在这种情况下可能出了什么问题?
正在将具有相同密钥的邮件添加到同一分区。如果不是这种情况,请尝试包含 Partition: kafka.PartitionAny
:
for _, message := range bigslice {
topic := "test6"
p.Produce(&kafka.Message{
TopicPartition: kafka.TopicPartition{Topic: &topic, Partition: kafka.PartitionAny},
Value: []byte(message),
}, nil)
}