#spring-boot #apache-kafka #stream #spring-kafka #synchronous
Вопрос:
я использую Spring stream @StreamListener для синхронной отправки сообщения, когда потребитель достигнет конечной точки Rest, и сообщение будет отправлено Кафке.
Я могу добиться синхронизации с помощью spring.cloud.stream.kafka.default.producer.sync=true, но когда Kafka отключен, исключение тайм-аута не происходит, поэтому потребитель ждет ~2 минуты. я попытался установить max.block.ms тоже, но у меня это не сработало. Ниже приведена конфигурация.
spring.cloud.stream.kafka.default.producer.sync=true
spring.cloud.stream.kafka.default.producer.configuration.max.block.ms=5000
spring.cloud.stream.binders.test.type=kafka
spring.cloud.stream.binders.environment.spring.cloud.stream.kafka.binder.autoCreateTopics=false
spring.cloud.stream.binders.environment.spring.cloud.stream.kafka.binder.brokers=localhost:9092
spring.cloud.stream.binders.environment.spring.cloud.stream.kafka.binder.zkNodes=localhost:2181
spring.cloud.stream.bindings.output.binder=test
spring.cloud.stream.bindings.output.group=testgroup
spring.cloud.stream.bindings.output.destination=topic1
spring.cloud.stream.bindings.output.content-type=text/plain
spring.cloud.stream.bindings.producer.header-mode=headers
Комментарии:
1. Вам необходимо показать свои свойства конфигурации, в том числе способ настройки
max.block.ms
. Отредактируйте вопрос и прокомментируйте, что вы это сделали, не помещайте свойства в комментарий.2. @GaryRussell Спасибо за ваш ответ. Добавлено рассматриваемое свойство конфигурации.
3. Попробуйте установить его на
output
привязку (вместоdefault
). Какую версию вы используете?zkNodes
Свойство было удалено давным-давно (и до этого считалось устаревшим). Современные клиентские версии Кафки не общаются напрямую с Zookeeper.4. Спасибо за ответ . Теперь я удалил конфигурацию zookeeper. Я использую весеннюю версию Hoxton.SR11, которая использует spring-обмен сообщениями 5.2.14.RELEASE.jar. Я добавил конфигурацию в выходной канал, но это не сработало для меня. Ниже приведена конфигурация, добавленная после удаления этой группы из группы по умолчанию. spring.cloud.stream.привязки.вывод.производитель.конфигурация.макс.блок.мс=5000 spring.cloud.поток.привязки.вывод.производитель.синхронизация=верно
5. Он работает, когда я удаляю max.block.ms и добавление ниже конфигурации. spring.cloud.stream.кафка.по умолчанию.производитель.конфигурация.запрос.тайм-аут.мс=5000 spring.облако.поток.кафка.по умолчанию.производитель.конфигурация. время доставки.время ожидания.мс=5000 весна.облако.поток.связующие.тест.среда.весна.облако.поток.кафка.связующее.Требуемые пакеты=-1