开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请问有没有人遇到过使用MySQL CDC,然后Flink jdbc写Oracle sink, 因为写

请问有没有人遇到过使用MySQL CDC,然后Flink jdbc写Oracle sink, 因为写入出错(Oracle报错)不断重试,导致Oracle连接被耗完?

展开
收起
十一0204 2023-04-05 09:06:16 325 0
1 条回答
写回答
取消 提交回答
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    在使用MySQL CDC和Flink JDBC写入Oracle sink时,可能会遇到连接被耗尽的问题。这通常是因为写操作失败后,Flink会尝试重新连接到Oracle数据库,但是如果连接池中的连接数量不足,就会一直重试,导致连接被耗尽。

    为了解决这个问题,可以考虑以下几种方法:

    1. 增加Oracle连接池的大小:可以尝试增加Oracle连接池的大小,以便在连接失败后有足够的备用连接可供使用。可以通过修改JDBC驱动程序的属性来设置连接池大小,例如通过在应用程序中设置javax.sql.DataSource属性来实现。

    2. 设置连接超时时间:可以在Flink应用程序中设置连接超时时间,以便在连接无法建立或保持活动一段时间后自动断开连接。这样可以避免无限期地等待连接建立或保持活动而导致连接被耗尽。可以在Flink应用程序中使用org.apache.flink.streaming.api.functions.sink.SinkFunctionBuilderhandleConnectionFailure方法来设置连接超时时间。

    3. 优化写入操作:可以尝试优化写入操作,以减少写入失败的概率。例如,可以调整写入数据的频率和批量大小,以避免与数据库性能瓶颈之间的竞争。还可以使用更高效的写入方式,例如使用二进制日志格式(Binary Log Format)进行写入,以减少写入失败的可能性。

    2023-05-11 11:35:27
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
    PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
    Oracle云上最佳实践 立即下载

    相关镜像