kafka设置了自动提交offset为false为什么偏移量还会提交?

无风三尺浪 2019-01-17 04:57:08
首先贴出我的配置:
server:
port: 8080
spring:
kafka:
bootstrap-servers: ip1:9092,ip2:9092,ip3:9092
producer:
retries: 0
batch-size: 16384
buffer-memory: 33554432
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
consumer:
group-id: test-offset-group
auto-offset-reset: earliest
enable-auto-commit: false
auto-commit-interval: 100
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

这是主启动类:
@SpringBootApplication
public class KafkaApplication {

public static void main(String[] args) {
SpringApplication.run(KafkaApplication.class, args);
}
}

下面贴出我的程序代码:
import lombok.extern.slf4j.Slf4j;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Component;

/**
* @author 无风三尺浪
*/
@Component
@Slf4j
public class KafkaReceiver {

@KafkaListener(topics = {"test-auto-create-topic"})
public void listen(ConsumerRecord<?, ?> record) {
Optional<?> kafkaMessage = Optional.ofNullable(record.value());

if (kafkaMessage.isPresent()) {
Object o = kafkaMessage.get();

log.info("---------------------record--1 = " + record);
log.info("---------------------message--1 = " + o);
}

}

我程序里并没有手动提交过偏移量。为啥,偏移量会自动提交?
...全文
939 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zheng_qg 2019-04-23
  • 打赏
  • 举报
回复
你是用的是@KafkaListener(topics = {"test-auto-create-topic"})监听的方式,监听topic,这个需要一个配置信息, spring.kafka.listener.ack-mode=batch(默认)批量提交,手动配置的话需要设置成manual,消费者需要手动提交偏移量,ack.acknowledge();
无风三尺浪 2019-01-17
  • 打赏
  • 举报
回复
kafka设置了自动提交offset为false为什么偏移量还会提交?

50,503

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧