Значения конфигурации Kafka по умолчанию, как для производителей, так и для брокеров, достаточно консервативны, поэтому при обычных обстоятельствах вы не должны сталкиваться с какими-либо таймаутами.Эти проблемы обычно указывают на нестабильную сеть с потерями между производителем и брокерами.
Исключение, которое вы получаете, Failed to update metadata
, обычно означает, что один из брокеров недоступен для производителя, и в результате он не может получить метаданные.
Для вашего второговопрос, Кафка автоматически попытается отправить сообщения, которые не были полностью подтверждены брокерами.Вам решать, хотите ли вы поймать и повторить попытку, когда у вас есть тайм-аут на стороне приложения, но если вы используете тайм-ауты более 1 минуты, повторная попытка, вероятно, не будет иметь большого значения.Вам все равно придется выяснить основные проблемы сети / достижимости с брокерами.
По моему опыту, обычно проблемы с сетью:
- Порт 9092 заблокированбрандмауэр, либо на стороне производителя, либо на стороне брокера, либо где-то посередине (попробуйте
nc -z broker-ip 9092
с сервера, на котором работает производитель) - Разрешение DNS нарушено, поэтому даже если порт открыт,производитель не может разрешить IP-адрес.