我们可以使用org.apache.kafka.clients.producer.ProducerConfig设置生产者配置文件'delivery.timeout.ms'吗

时间:2020-02-13 19:58:38

标签: apache-kafka spring-kafka

我们正在使用spring-kafka-2.2.7.RELEASE生成和使用avro消息,并使用模式注册表以“ FORWARD_TRANSITIVE”作为兼容类型来进行模式验证。现在,我试图了解是否可以为生产者配置“ delivery.timeout.ms”设置自定义值?

1 个答案:

答案 0 :(得分:1)

如果您不使用Spring Boot,则只需在用于创建生产者工厂的生产者配置映射中设置属性即可。

如果您正在使用Spring Boot(请在以后添加标签),请参阅Boot documentation about spring-kafka integration

自动配置支持的属性显示在appendix-application-properties.html中。请注意,在大多数情况下,这些属性(连字符或camelCase)直接映射到Apache Kafka点缀属性。有关详细信息,请参阅Apache Kafka文档。

这些属性的前几个属性适用于所有组件(生产者,消费者,管理员和流),但是如果您希望使用不同的值,则可以在组件级别指定。 Apache Kafka指定属性为HIGH,MEDIUM或LOW。 Spring Boot自动配置支持所有HIGH重要性属性,某些MEDIUM和LOW属性以及所有没有默认值的属性。

仅可通过KafkaProperties类直接获得Kafka支持的属性的子集。如果您希望使用不直接支持的其他属性来配置生产者或使用者,请使用以下属性:

spring.kafka.properties.prop.one=first
spring.kafka.admin.properties.prop.two=second
spring.kafka.consumer.properties.prop.three=third
spring.kafka.producer.properties.prop.four=fourth
spring.kafka.streams.properties.prop.five=fifth

这将属性prop.one Kafka的第一属性设置为第一(适用于生产者,消费者和管理员),将prop.two admin属性设置为第二,将prop.3消费者属性设置为第三,将prop.four生产者属性设置为第四。并将prop.five stream属性设置为第五。