Flink CDC 3.0 表结构变更时导致webUI接口无反应原因

Flink CDC 3.0 表结构变更时导致webUI接口无反应!

表结构变更流程可参考Flink CDC 3.0 表结构变更的处理流程
原因:因为deliverCoordinationRequestToCoordinatorrequestJob都是SchedulerNG中方法,该类的线程模型是单线程执行,所以在deliverCoordinationRequestToCoordinator执行表结构变更时,webUI使用SchedulerNG中方法的接口无反应!
requestJob:获得执行图信息
deliverCoordinationRequestToCoordinator:转发表结构变更等请求到协调器
解决方案https://github.com/apache/flink-cdc/pull/3128

  1. SchemaRegistry(协调器)原先执行schemaChange(在flushSuccess方法中)是同步,现改为异步;
  2. SchemaOperateSchemaRegistry(协调器)交互由同步阻塞改为轮训;具体如下
    原先:SchemaOperator 调用requestReleaseUpstream方法远程调用到SchemaRegistry(协调器)请求释放,协调器收到请求会调用PendingSchemaChange中responseFuture.get()方法等待;responseFuture会在所有sink节点flush完成且执行完schemaChange后设置responseFuture为完成,最后返回结果。
    新方案:SchemaOperator 调用requestReleaseUpstream方法远程调用到SchemaRegistry(协调器)请求释放,直接返回responseFuture,但是返回类型是processingResponse/ReleaseUpstreamResponse,如果是processingResponse则一直轮训直到返回ReleaseUpstreamResponse
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值