我正在创建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)
}
我已经发送了20万多条消息,但它们全部落在分区0中。
在这种情况下怎么了?
答案 0 :(得分:2)
具有相同密钥的消息将添加到同一分区。如果不是这种情况,请尝试包含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)
}