Какие значения конфигурации вы используете для Sarama и Kafka?
Кафка Версия: kafka_2.12-1.1.0.tgz
Версия Go: 1.9.1
package kafka
import (
"flag"
"fmt"
"log"
"strings"
"github.com/Shopify/sarama"
)
var partition = flag.Int("partition", 12, "The partition to produce to.")
func Start_producer(payload []byte) {
flag.Parse()
s := "mydata"
topic := &s
// brokers := &[]string{"172.25.33.175:9092,172.25.33.176:9092,172.25.33.177:9092"}
// brokers := []string{"172.25.33.175:9092,172.25.33.176:9092,172.25.33.177:9092"}
config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForAll
config.Producer.Retry.Max = 5
config.Producer.Return.Successes = true
producer, err := sarama.NewSyncProducer(strings.Split("172.25.33.175:9092,172.25.33.176:9092,172.25.33.177:9092", ","), config) //default port
if err != nil {
log.Println("ERRR")
panic(err)
}
defer func() {
if err := producer.Close(); err != nil {
panic(err)
}
}()
msg := &sarama.ProducerMessage{
Topic: *topic,
Value: sarama.StringEncoder(payload),
Partition: int32(*partition),
}
fmt.Println("XXXX: ", msg.Partition)
partition, offset, err := producer.SendMessage(msg)
if err != nil {
panic(err)
}
fmt.Println()
fmt.Printf("Message is stored in topic(%s)/partition(%d)/offset(%d)\n", *topic, partition, offset)
fmt.Println("--------------------------------------------------")
fmt.Println(partition)
}
Описание проблемы
Я пытаюсь отправить поток сообщений моему брокеру Kafka, у меня 3 заданных узла, и я хочу, чтобы сообщения были в 12 разделах, но когда я вызываю SendMessage (msg), он возвращает 0 разделов. Это почему? Почему я не могу отправлять свои сообщения в разделах?