实时计算Flink读取消息队列Kafka,flink日志中出现Error sending fetch request (sessionId=1510763375, epoch=12890978) to node 103: {}.org.apache.flink.kafka.shaded.org.apache.kafka.common.errors.DisconnectException: null
可能是因为 Kafka 中的数据格式与 Flink 的数据格式不匹配,或者数据序列化/反序列化的代码有误导致的。
FlinkKafkaConsumer继承了FlinkKafkaConsumerBase,FlinkKafkaConsumerBase继承了RichParallelSourceFunction,FlinkKafkaConsumer构造方法还是主要调用了父类的构造方法。首先来分析一下FlinkKafkaConsumerBase public abstract class FlinkKafkaConsumerBase<T> extends RichParallelSourceFunction<T> implements CheckpointListener, ResultT...
详情看:https://stackoverflow.com/questions/66042747/error-sending-fetch-request-sessionid-invalid-epoch-initial-to-node-1001-org 5、flink sql cdc 写入到pg 与 flink sql 转换后的pg sql 数据量不一致问题 现象:flink sql 转换为 pg sql 后查询的数据量比flink sql cdc kafka 多 原因:flink sql cdc ...
1.Flink-kafka-source 源码解析 流程概述 一般在 Flink 中创建 kafka source 的代码如下: StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); //KafkaEventSchema为自定义的数据字段解析类 env.addSource(new FlinkKafkaConsumer<>("foo", new KafkaEventSchema(), properties) ...
背景 最近项目中使用Flink消费kafka消息,并将消费的消息存储到mysql中,看似一个很简单的需求,在网上也有很多flink消费kafka的例子,但看了一圈也没看到能解决重复消费的问题的文章,于是在flink官网中搜索此类场景的处理方式,发现官网也没有实现flink到mysql的Exactly
The implementation is fairly simple - key by session_key, store start_event into ValueState, entries into ListState, and then when end_event arrives, run the processing logic over all events and push the results into the output Kafka topic....
createAndStartDiscoveryLoop(discoveryLoopErrorRef); kafkaFetcher.runFetchLoop(); ... } 再看下 KafkaFetcher 的 runFetchLoop 方法: 启动消费 kafka topic 的线程,并获取数据(同步的 Handover 在两个线程间使用全局变量共享数据) @OverridepublicvoidrunFetchLoop()throwsException {try{//kick off the actual ...
这里最重要的就是 userFunction.run(ctx);,这个 userFunction 就是在上面初始化的时候传入的 FlinkKafkaConsumer 对象,也就是说这里实际调用了 FlinkKafkaConsumer 中的 run 方法,而具体的方法实现在其父类 FlinkKafkaConsumerBase中,至此,进入了真正的 kafka 消费阶段。
使用kafkaproducer.send(record,callback)代替send(record)unclean.leader.election.enable=假 replicatio...