ttt*_*ttt 4 apache-kafka spring-kafka
对于原生的 Java Kafka 客户端,有一个叫做 Kafka 的配置,enable.idempotence
我们可以设置true
为启用幂等生产者。
但是,对于 Spring Kafka,我在KafkaProperties
课堂上找不到类似的幂等性。
所以我想知道,如果我在我的 Spring Kafka 配置文件中手动设置,这个属性会生效还是 Spring 会完全忽略 Spring Kafka 的这个配置?
有两种方法可以指定此属性
application.properties您可以使用此属性来指定生产者的任何其他属性
spring.kafka.producer.properties.*= # Additional producer-specific properties used to configure the client.
Run Code Online (Sandbox Code Playgroud)
如果您在生产者和消费者之间有任何额外的通用配置
spring.kafka.properties.*= # Additional properties, common to producers and consumers, used to configure the client.
Run Code Online (Sandbox Code Playgroud)
通过代码您还可以覆盖和自定义配置
@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());
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3086 次 |
最近记录: |