Flink CDC实时同步Mysql到StarRocks报事务异常无法同步数据

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】使用Flink CDC的方式实时同步mysql的表到StarRocks报事务异常,数据没法同步过去
【背景】做过哪些操作?
【业务影响】
【是否存算分离】否
【StarRocks版本】3.3.2-857dd73
【集群规模】docker 环境 1fe(1 follower+2observer)+1be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【表模型】主键模型
【导入或者导出方式】Flink CDC 同步mysql到StarRocks
【联系方式】
【附件】

flink cdc创建任务脚步截图

目前排查发现一个奇怪的问题,开始事务、写入事务、预提交事务连续三步都是成功的,最后一步提交事务却返回事务不存在,四个步骤之间时间间隔很短。

有哪位大佬知道原因吗,求指教

https://docs.starrocks.io/zh/docs/loading/Flink_cdc_load/ 参考官网的配置操作

感谢回复,目前发现原因是,docker部署的StarRocks,be默认ip地址是127.0.0.1
image

/api/transaction/begin
/api/transaction/load
/api/transaction/prepare

这三个接口请求的是fe服务器,fe服务器会重定向去到be服务器的ip。而docker里面be服务器ip地址是127.0.0.1,所以flink cdc访问的是flink本身所在服务器的be服务。我当时在flink服务器上配置的flink cdc同步脚步指向的StarRocks服务器是我本机,刚好我这个部署flink的服务器上面有一套StarRocks,所以就会造成上诉3个接口请求成功(请求了服务器本身的StarRocks),最后一个接口/api/transaction/commit请求失败的假象(/api/transaction/commit不会重定向,请求到我本机)。

结论:用docker部署的StarRocks,使用flink cdc需要flink和StarRocks在同一台机器上。
后续看看是否可以手动变更be服务器的地址。

通过feproxy(一个已经集成在StarRocks的docker中的nginx服务),访问8080端口,就不会再重定向,可实现flink和StarRocks(docker化部署的StarRocks)在不同机器上。