如何在属性文件春季启动中设置Acks = all

时间:2019-04-24 22:38:54

标签: spring-boot apache-kafka 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

不幸的是,它对我有用。

您能帮我如何设置应用程序级别或生产者/消费者的这类属性。

1 个答案:

答案 0 :(得分:0)

以下配置仅由Kafka Binders使用(不适用于kafka Streams)。它用于设置生产者实例的acks属性。

spring.cloud.stream.kafka.binder.requiredAcks

要配置Kafka Streams实例,属性必须以spring.cloud.stream.kafka.streams.binderSpring Cloud Stream Configuration)为前缀。

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

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