В чем разница между spring.kafka.consumer.auto-offset-rest и ConsumerConfig.AUTO_OFFSET_RESET_CONFIG? - PullRequest
0 голосов
/ 01 октября 2019

В 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 голосов
/ 01 октября 2019

Это то же самое.

При использовании автоматической конфигурации Boot для фабрики-потребителя это свойство сопоставляется с AUTO_OFFSET_RESET_CONFIG.

См. Документация по загрузке .

Свойства, поддерживаемые автоматической настройкой, показаны в Приложении A, Общие свойства приложения. Обратите внимание, что по большей части эти свойства (дефис или camelCase) отображаются непосредственно в точечные свойства Apache Kafka. Подробнее см. Документацию Apache Kafka.

Первые несколько из этих свойств применяются ко всем компонентам (производителям, потребителям, администраторам и потокам), но могут быть указаны на уровне компонентов, если вы хотите использовать другие значения,Apache Kafka обозначает свойства со значением HIGH, MEDIUM или LOW. Автоконфигурация Spring Boot поддерживает все свойства высокой важности, некоторые выбранные свойства MEDIUM и LOW и любые свойства, которые не имеют значения по умолчанию.

Только подмножество свойств, поддерживаемых Kafka, доступно непосредственно через KafkaPropertiesкласс. Если вы хотите настроить производителя или потребителя с помощью дополнительных свойств, которые не поддерживаются напрямую, используйте следующие свойства: ...

Поскольку вы не используете автоматическую настройку (вы определяете свои собственные настройки), свойство Boot игнорируется.

...