【问题标题】:How to set Acks=all in properties file spring boot如何在属性文件 spring boot 中设置 Acks=all
【发布时间】:2019-04-24 22:38:54
【问题描述】:

我想在我的 spring cloud stream kafka 应用程序中为我的生产者设置 acks=all 属性。

我试过这样:

spring.cloud.stream.kafka.binder.requiredAcks=all

和

spring.cloud.stream.kafka.streams.binder.configuration=all

和

spring.cloud.stream.kafka.streams.bindings.<channel>.producer.configuration.requiredAcks=all

不幸的是,注意到对我有用。

您能否帮我将这些属性设置为应用程序级别或生产者/消费者。

【问题讨论】:

  • 只是为了确定,您使用的是 Kafka binder 还是 Kafka Streams binder ?

标签: spring-boot apache-kafka spring-cloud-stream


【解决方案1】:

以下配置仅由 Kafka Binder 使用(不是 kafka Streams 之一)。用于设置生产者实例的acks属性。

spring.cloud.stream.kafka.binder.requiredAcks

要配置 Kafka Streams 实例,属性必须以 spring.cloud.stream.kafka.streams.binder(Spring Cloud Stream Configuration).

在 KafkaStreams 中,可以通过添加前缀“.producer”来覆盖生产者属性(请参阅Configuring a Streams Application;因此要配置生产者确认,您应该定义以下属性:

spring.cloud.stream.kafka.streams.binder.configuration.producer.acks=all

请注意,如果您正在构建有状态的 Kafka Streams 应用程序,强烈建议启用 exactly_once 语义。

这个语义可以配置为:

spring.cloud.stream.kafka.streams.binder.configuration.processing.guarantee=exactly-once

【讨论】:

  • 感谢您的回复,我以 Josh Long 的演示为例。这是属性文件的链接: [link]github.com/joshlong/spring-cloud-stream-kafka-streams/blob/… ,这里我们有两个生产者,我想为每个生产者自定义属性。如何为特定的生产者或消费者或应用程序级别添加任何所需的配置?
猜你喜欢
  • 2020-09-15
  • 2018-08-26
  • 1970-01-01
  • 2020-08-21
  • 2019-01-03
  • 2016-08-15
  • 2017-10-26
  • 2016-04-25
  • 2019-03-04
相关资源
最近更新 更多