Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java @KafkaListner-跳过旧邮件或仅接收新邮件_Java_Spring_Apache Kafka_Spring Kafka - Fatal编程技术网

Java @KafkaListner-跳过旧邮件或仅接收新邮件

Java @KafkaListner-跳过旧邮件或仅接收新邮件,java,spring,apache-kafka,spring-kafka,Java,Spring,Apache Kafka,Spring Kafka,我有工厂豆: @Bean public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory( CustomConsumerRebalanceListener consumerRebalanceListener, ConsumerFactory consumerFactory, CustomConfiguration customConfigurati

我有工厂豆:

@Bean
public ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory(
        CustomConsumerRebalanceListener consumerRebalanceListener, ConsumerFactory consumerFactory, CustomConfiguration customConfiguration) {
    ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
    factory.setConsumerFactory(consumerFactory);
    factory.getContainerProperties().setAckOnError(false);
    factory.setBatchListener(true);
    factory.setStatefulRetry(true);
    factory.setBatchErrorHandler(errorHandler());
    factory.setConcurrency(customConfiguration.getConcurrency());
    factory.getContainerProperties().setConsumerRebalanceListener(consumerRebalanceListener);
    return factory;
}

如何将侦听器配置为在启动时只接收新消息而不获取旧消息?

让您的侦听器实现
ConsumerSekAware
,并在分配分区时一直搜索到底。具体参见EDIT2之后的示例;改用
seekToEnd

或者,您可以使用
auto.offset.reset=latest
,并在每次启动应用程序时使用唯一的
group.id


使用
synchronized
listener方法将破坏并发性;其他线程将等待同步。

让您的侦听器实现
ConsumerSekAware
并在分配分区时搜索到底。具体参见EDIT2之后的示例;改用
seekToEnd

或者,您可以使用
auto.offset.reset=latest
,并在每次启动应用程序时使用唯一的
group.id


使用
synchronized
listener方法将破坏并发性;其他线程将等待同步。

我从未使用过库,但我猜
acknowledge.acknowledge()
确认实例仅适用于当前消息;看我的答案。我从未使用过lib,但我猜
acknowledge.acknowledge()
确认实例仅适用于当前消息;看看我的答案。
@KafkaListener(topics = "${spring.kafka.topic}")
    private synchronized void consumeKafkaQueue(@Payload String message, Acknowledgment acknowledgment) {
        ...
    }
factory.setConcurrency(customConfiguration.getConcurrency());