【发布时间】:2020-05-08 06:12:14
【问题描述】:
我愿意使用 Spring Batch 进行 Kafka 数据消费。这个spring-tips 链接有一个相同的基本示例。
这是我的reader:
@Bean
KafkaItemReader<String, String> kafkaItemReader() {
var props = new Properties();
props.putAll(this.properties.buildConsumerProperties());
return new KafkaItemReaderBuilder<String, String>()
.partitions(0)
.consumerProperties(props)
.name("customers-reader")
.saveState(true)
.topic("test-consumer")
.build();
}
我的application.properties 文件:
spring:
kafka:
consumer:
bootstrap-servers: localhost:9092
group-id: groupid-Dev
enable-auto-commit: false
auto-offset-reset: latest
auto.commit.interval.ms: 1000
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserialize
问题:
- 每次我启动作业时,它都会寻找第 0 个偏移量。所以,我从一开始就收到消息。这是一个错误吗?
- 为什么我们需要手动提供要读取的分区?以后有什么变化,不会影响我的代码吗?
【问题讨论】:
-
未指定偏移量
-
不重启Kafka服务器也会出现这种情况吗?
标签: java spring apache-kafka spring-batch spring-kafka