无法确定我的kafka侦听器配置出了什么问题。最初,我有一个名为“ transactions” 的非空kafka主题,上面有几条记录(我可以在KafkaTool中看到它)。 这是application.yml:
spring:
###
# Kafka Settings
###
kafka:
consumer:
bootstrap-servers: localhost:9092
key-deserializer: com.panbet.externalbet.history.report.support.ReportsBetKeyJsonDeserializer
value-deserializer: com.panbet.externalbet.history.report.support.ReportsBetJsonDeserializer
group-id: external.history.group
这是Java配置文件:
@EnableKafka
@Configuration
public class KafkaConfig
{
private final KafkaProperties properties;
public KafkaConfig(KafkaProperties properties)
{
this.properties = properties;
}
@Bean
public ConsumerFactory<ReportsBetKeyDto, ReportsBetDto> kafkaConsumerFactory()
{
return new DefaultKafkaConsumerFactory<>(properties.buildConsumerProperties());
}
@Bean
public ConcurrentKafkaListenerContainerFactory<ReportsBetKeyDto, ReportsBetDto> kafkaListenerContainerFactory()
{
ConcurrentKafkaListenerContainerFactory<ReportsBetKeyDto, ReportsBetDto> factory = new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(kafkaConsumerFactory());
return factory;
}
}
我的kafka侦听器看起来像(前面提到的主题“交易”的侦听器):
@Component
public class ReportsConsumer
{
@KafkaListener(topics = { "transactions" })
public void listen(ConsumerRecord<ReportsBetKeyDto, ReportsBetDto> record)
{
System.out.println(record);
}
}
我希望:当应用程序启动时,我将在ReportsConsumer.listen方法中捕获脱预算器。但不幸的是,没有任何反应。听过与kafka主题无关。有什么事吗谢谢。
答案 0 :(得分:1)
默认情况下,新使用者从主题末尾开始消费。
设置spring.kafka.consumer.auto-offset-reset=earliest
我还建议使用spring.kafka.consumer.enable-auto-commit=false
,以便容器管理偏移量。