Назад к вопросам
Сбер Контакт
Junior — Middle
83
Каким образом продюсер Kafka выбирает раздел (partition) для отправки сообщения?
Компании, где спрашивали
Ответ от нейросети
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, чтобы все сообщения с этим ключом попадали в один раздел.