我想在我的春季云流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
不幸的是,它对我有用。
您能帮我如何设置应用程序级别或生产者/消费者的这类属性。
答案 0 :(得分:0)
以下配置仅由Kafka Binders使用(不适用于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;来覆盖生产者属性;因此,要配置生产者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