Spring / Kafka - 配置属性优先级 - application.properties, bean(ProducerFactory)
Spring / Kafka - configuration properties priorities - application.properties, bean(ProducerFactory)
Kafka
配置属性:
我可以在
中使用相同的 属性 "key"(也可能不同 "value")
(1) application.properties,
(2) bean(ProducerFactory/ProducerConfig) 和
如果是,"last-win"是谁?
P.S 是的,我知道,测试一下!但是在 SO 上使用这个 question/answer 也很方便。
编辑:
示例:
(1) spring.kafka.producer.properties.enable.idempotence=真
(2) props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "false");
道具定义为:
@Configuration
public class KafkaProducerConfiguration {
@Bean
public ProducerFactory<Object, Object> producerFactory() {
Map<String, Object> props = new HashMap<>();
boot 属性 (1) 仅在Boot 自动为您配置生产者工厂时使用。由于您正在定义自己的生产者工厂 @Bean
(2),因此 Boot's 被禁用并且属性被忽略。
如果您想使用 Boot application.properties
,只需删除您的 producerFactory
@Bean
并让 Boot 为您配置生产者工厂。
我不知道 config/producer.properties
(3) 是什么。
Kafka
配置属性:
我可以在
中使用相同的 属性 "key"(也可能不同 "value")
(1) application.properties,
(2) bean(ProducerFactory/ProducerConfig) 和
如果是,"last-win"是谁?
P.S 是的,我知道,测试一下!但是在 SO 上使用这个 question/answer 也很方便。
编辑:
示例:
(1) spring.kafka.producer.properties.enable.idempotence=真
(2) props.put(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "false");
道具定义为:
@Configuration
public class KafkaProducerConfiguration {
@Bean
public ProducerFactory<Object, Object> producerFactory() {
Map<String, Object> props = new HashMap<>();
boot 属性 (1) 仅在Boot 自动为您配置生产者工厂时使用。由于您正在定义自己的生产者工厂 @Bean
(2),因此 Boot's 被禁用并且属性被忽略。
如果您想使用 Boot application.properties
,只需删除您的 producerFactory
@Bean
并让 Boot 为您配置生产者工厂。
我不知道 config/producer.properties
(3) 是什么。