Junior — Middle
113
Каким образом продюсер Kafka выбирает раздел (partition) для отправки сообщения?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Продюсер Kafka выбирает раздел (partition) для отправки сообщения на основе ключа сообщения и настроек партиционирования. Если у сообщения есть ключ, то Kafka использует хеш-функцию от этого ключа, чтобы определить конкретный partition, обеспечивая, что все сообщения с одним ключом попадут в один и тот же раздел. Если ключ отсутствует, продюсер обычно распределяет сообщения по разделам циклически (round-robin) для балансировки нагрузки.
Пример на Go с использованием библиотеки sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // ключ для партиционирования
Value: sarama.StringEncoder("message payload"),
}
partition, offset, err := producer.SendMessage(msg)
Здесь ключ "userID123" будет использоваться для выбора partition, чтобы все сообщения с этим ключом попадали в один раздел.