пожалуйста, она умеет переподключаться к кафке в случае чего? Потому что у меня примерно такая логика:
В main функции я инициализирую свою структуру для работы с sarama, там же происходит и коннект к самой кафке. А дальше в http обработчик могут раз в X времени постучаться и тем самым вызвать отправку какой-то инфы в кафку, это происходит примерно вот так:
lb, err := json.Marshal(&location)
message := &sarama.ProducerMessage{Topic: s.config.KafkaLocationTopic, Value: sarama.StringEncoder(lb)}
s.kp.Input() <- message
Проблема моя в том, что иногда этот код не срабатывает. Ендпоинт просто отдает таймаут, думаю что проблема именно на этом этапе. Но как и когда они возникает - хз
Да, умеет. Если посмотреть в исходники, то там есть ретраи на коннект к брокерам.
А как запись в канал даёт таймаут?
IMHO, таймаут у запроса к эндпоинту. А вот с записью в канал не ясно.
зависает на этапе записи в кафку, а ендпоинт уже просто таймаут отдает
https://pkg.go.dev/github.com/Shopify/sarama#pkg-variables установите логер, может что-то дополнительное выдаст.
Обсуждают сегодня