apache-kafka - Spring Kafka 幂等生产者配置

标签 apache-kafka spring-kafka

对于原生 Java Kafka 客户端,有一个名为 enable.idempotence 的 Kafka 配置。我们可以将它设置为 true启用幂等生产者。

但是,对于 Spring Kafka,我在 KafkaProperties 中找不到类似的幂等性。类(class)。

所以我想知道,如果我在我的 Spring Kafka 配置文件中手动设置,这个属性会生效还是 Spring 会完全忽略 Spring Kafka 的这个配置?

最佳答案

有两种方法可以指定此属性

application.properties 您可以使用此属性来指定生产者的任何其他属性

spring.kafka.producer.properties.*= # Additional producer-specific properties used to configure the client.

如果您在生产者和消费者之间有任何额外的通用配置
spring.kafka.properties.*= # Additional properties, common to producers and consumers, used to configure the client.

直通码 您还可以覆盖和自定义配置
 @Bean
public ProducerFactory<String, String> producerFactory() {

   Map<String, Object> configProps = new HashMap<>();
   configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapAddress);
    configProps.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, true);
    configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,
    StringSerializer.class);
    configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, 
      StringSerializer.class);
    return new DefaultKafkaProducerFactory<>(configProps);
}

@Bean
public KafkaTemplate<String, String> kafkaTemplate() {
    return new KafkaTemplate<>(producerFactory());
    }
 }

关于apache-kafka - Spring Kafka 幂等生产者配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57145778/

相关文章:

java - Kafka消费者未加入自定义groupId

java - Spring Boot kafka junit 失败

postgresql - 卡夫卡连接 : No suitable driver found

security - 具有cloudera TLS故障的Kafka

java - 在kafka消费者中获取重复项

docker - 控制台生产者错误连接到节点 kafka1 :9092 (org. apache.kafka.clients.NetworkClient) java.net.UnknownHostException

python - 在Python环境中使用Kafka进行合约测试?

apache-kafka - 无法暂停 Spring Kafka 容器

java - Spring Boot : Kafka health indicator

java - Kafka 流返回 fieldx = 某个值的所有记录