【问题标题】:How to set Kafka consumer configuration to consume messages from now?如何设置 Kafka 消费者配置以从现在开始消费消息?
【发布时间】:2019-03-26 09:38:17
【问题描述】:

我是 Kakfa 的新手,正在学习如何在 Kafka 主题中生成和使用消息。

我正在使用 @EnableKafka 的 Kafka 配置

@EnableKafka
@Configuration
public class ConsumerConfig implements ApplicationContextAware {

    @Value("${kafka.servers}")
    private String kafkaServerAddress;

    @Value("${kafka.ca.groupid}")
    private String groupId;


    private ApplicationContext context;

    public DefaultKafkaConsumerFactory<String, Object> consumerFactory() {

        Map<String, Object> props = new HashMap<>();
        return new DefaultKafkaConsumerFactory<>(props);
    }

    @Bean
    public ConcurrentKafkaListenerContainerFactory<String, Object> binlogListenerContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, Object> factory = new ConcurrentKafkaListenerContainerFactory<>();
        DefaultKafkaConsumerFactory<String, Object> defaultFactory = consumerFactory();
        defaultFactory.setKeyDeserializer(new StringDeserializer());
        defaultFactory.setValueDeserializer(new JsonDeserializer(BinlogMessage.class));
        factory.setConsumerFactory(defaultFactory);
        return factory;
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        context = applicationContext;
    }

}

【问题讨论】:

    标签: apache-kafka kafka-consumer-api producer-consumer spring-kafka


    【解决方案1】:

    得到答案,可以通过将属性 AUTO_OFFSET_RESET_CONFIG 设置为 latest 来完成,如下所示:

    public DefaultKafkaConsumerFactory<String, Object> consumerFactory() {
    
        Map<String, Object> props = new HashMap<>();
        props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "latest");
        return new DefaultKafkaConsumerFactory<>(props);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 2020-08-11
      • 2017-03-19
      相关资源
      最近更新 更多