spring.kafka.consumer.auto-offset-rest和ConsumerConfig.AUTO_OFFSET_RESET_CONFIG有什么区别?

时间:2019-10-01 08:47:18

标签: spring-kafka

在application.properties中,我有这个:

spring.kafka.consumer.auto-offset-reset=latest

在KafkaConsumerConfiguration.java中,我有这个:

@Bean
public Map<String, Object> consumerConfigs(){
    Map<String, Object> props = new HashMap<>();
    props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
    props.put(ConsumerConfig.GROUP_ID_CONFIG, "group1");
    props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");

    return props;
}

我猜他们是一样的吗?

1 个答案:

答案 0 :(得分:0)

是同一回事。

在为消费者工厂使用Boot的自动配置时,该属性将映射到AUTO_OFFSET_RESET_CONFIG

请参见Boot's documentation

  

自动配置支持的属性显示在附录A,通用应用程序属性中。请注意,在大多数情况下,这些属性(连字符或camelCase)直接映射到Apache Kafka点缀的属性。有关详细信息,请参阅Apache Kafka文档。

     

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

     

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

由于您没有使用自动配置(正在定义自己的配置),因此Boot属性将被忽略。