flink 消费 kafka offset 自动提交

本文介绍了Apache Flink 1.14.0中消费Kafka数据时,如何配置enable.auto.commit和checkpoint策略来控制消费起点。当启用checkpoint时,自动提交设置将失效,消费点依据checkpoint;否则,遵循enable.auto.commit设置。示例代码展示了DataStream和SQL两种方式的配置,包括设置group-id、auto.offset.reset和auto.commit.interval.ms等关键参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

flink 消费kafka 程序重启后,从原先的自动提交的点继续消费,earliest 不用再从开始消费
如果开启了checkpoint 以 checkpoint为准 ,enable.auto.commit 失效,
如果没有开启,则以enable.auto.commit 为准
flink1.14.0

Kafka | Apache Flink

flink dataStream 方式

KafkaSource<String> source = KafkaSource.<String>builder()
                .setBootstrapServers("broker")
                .setTopics("topic")
                .setGroupId("group_id")
                .setProperty("enable.auto.commit","true")
//                .setProperty("auto.offset.reset","earliest")
                .setProperty("auto.offset.reset","latest")
                .setProperty("auto.commit.interval.ms","1000")
//                .setStartingOffsets(OffsetsInitializer.earliest())
                .setStartingOffsets(OffsetsInitializer.committedOffsets(OffsetResetStrategy.EARLIEST))
                .setValueOnlyDeserializer(new SimpleStringSchema())
                .build();

        DataStreamSource<String> kafka_source = env.fromSource(source, WatermarkStrategy.noWatermarks(), "Kafka Source");
        kafka_source.print();

flink sql 方式

重点是这四个属性
'scan.startup.mode'='group-offsets', // 默认
'properties.enable.auto.commit' = 'true',
'properties.auto.offset.reset.strategy' = 'earliest',
'properties.auto.commit.interval.ms' = '1000'

CREATE TABLE  `kafka_order_stream` (
  `id` VARCHAR ,
  `name` VARCHAR 
) WITH (
  'format' = 'json',
  'json.ignore-parse-errors' = 'true',
  'json.fail-on-missing-field' = 'false',
  'properties.bootstrap.servers' = 'broker',
  'connector' = 'kafka',
  'topic' = 'topic',
  'scan.startup.mode'='group-offsets', // 默认
  'properties.group.id' = 'group_id',
  'properties.enable.auto.commit' = 'true',
  'properties.auto.offset.reset.strategy' = 'earliest',
  'properties.auto.commit.interval.ms' = '1000'
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值