【 测试环境 】生产环境 or 测试环境
【 OB 】
【 4.2.1】
【问题描述】
通过flink oceanbase cdc监听ob的全量表时,读取完数据后任务会转为FINISHED状态,这个合理么,不是应该是RUNNING状态么
用的 flink cdc 是哪个版本的?正常情况下增量数据读取是长期任务,不会自动结束的,可以看下日志确认下有没有异常,或者试下从指定时间启动。
客户端有没有什么状况下的连接断开机制啥的呢
logproxy 服务是不会关闭 logproxy 客户端连接的,客户端只有在出现异常或者主线程退出时才会主动关闭连接。
麻烦提供下 flink 任务的日志看看?还有 logproxy 的日志您看的是 run/${client_id}
目录下的吗?
flink日志全程没有一点异常。只有 run/${client_id}
会报Duplication exist clientId这个问题,但是这个id是唯一的 为啥会重复
两种可能:
- 之前的任务有异常重启,重启的时候上一次的连接没有正常断开。这种情况只能把原来的logreader进程杀掉,然后重新创建flink任务
- client id 如果没有指定,默认是时间+租户,如果同时启动多个同租户的任务可能会重复。这种情况可以手动指定client id来避免。
这两个现象都没有呢?
那就要继续从 logproxy 的日志里找原因了,其他可能的原因有内存不足、磁盘满、网络不稳定等等,需要根据日志打印的情况来定位。
有没有可能是线程并发导致的
目前实现的 OceanBaseRichSourceFunction 是不会同时启动多个任务的,增量部分的 LogProxyClient 除了异常重试的情况也只会启动一个。
什么情况下,任务异常退出没有清理连接,感觉还挺常见的