Connector
Flink 并不依赖 Kafka本身的offset管理,依赖自己的Checkpoint来记录当前offset位置 从系统故障中恢复。
Async I/O
EventTime的无序模式下,Watermark之间数据是无序的,但是两个Watermark不会乱序,保证Watermark正常工作。
Kafka Connector
反序列化
设置
消费初始位置设置
如果有Checkpoint,Checkpoint优先,下面配置无效。
FlinkKafkaConsumer.setStartFromGroupOffsets(); #从Kafka记录处读取(默认)。如果没有则根据auto.offset.reset选项设置。
FlinkKafkaConsumer.setStartFromEarliest(); #最早
FlinkKafkaConsumer.setStartFromLatest(); #最新
setStartFromTimestamp(long); #指定读取什么时间之后
setStartFromSpecificOffsets(); #指定每个Partition的具体offset位置
partition自动发现
设置后会启动线程定期检测kafka元数据。
flink.partition-discovery.interval-millis: 1000 #默认是false
正则匹配多个Topic
也需要上诉参数开启。
Pattern topicPattern = java.util.regex.Pattern.compile("topic[0-9]");