#spring-cloud-stream #spring-cloud-dataflow
#spring-cloud-stream #spring-cloud-поток данных
Вопрос:
При запуске потока потока данных Spring Cloud довольно часто приложения не могут быть развернуты на моем компьютере из-за различных ошибок, связанных с Kafka. Например: org.springframework.cloud.stream.binder.BinderException: Cannot initialize binder
[...]
Caused by: kafka.common.KafkaException: fetching topic metadata for topics [Set(xxx)] from broker [List()] failed
Но я также видел это: kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
В обеих ситуациях запущен процесс Kafka (а также ZooKeeper), поэтому я предполагаю, что пройден какой-то порог тайм-аута.
Ни общая, ни специфичная для Kafka конфигурация, похоже, не предлагают никаких параметров тайм-аута.
Могу ли я каким-либо образом повлиять на количество времени, по истечении которого клиент Kafka сдается и предполагает, что брокер ушел?
Ответ №1:
Можете ли вы получить информацию о темах, используя команды инструмента kafka, такие как ./bin/kafka-topics.sh
? Это похоже на проблему конфигурации Kafka, а не на возможный тайм-аут.
Если вы хотите установить какое-либо из общих свойств (например connect.timeout.ms и т.д.,) в kafka producer / consumer вы можете сделать это через spring.cloud.stream.kafka.bindings.<channelName>.<producer/consumer>.configuration.<propertyName>=<propertyValue>
Ответ №2:
кажется, что брокер kafka не работал правильно, можете ли вы попробовать использовать bin/kafka-topics.sh --describe --zookeeper <your zookeeper host>:2181
, чтобы узнать, синхронизирована ли ваша тема или нет.