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

如果Flink CDC pgsql库10几分钟更新几千万条数据,如何保证cdc任务不报错,内存不溢出

如果Flink CDC pgsql库10几分钟更新几千万条数据,复制槽一下子从几十M到几千M,这种情况下如何保证cdc任务不报错,内存不溢出

展开
收起
wenti 2023-02-06 15:05:41 354 0
2 条回答
写回答
取消 提交回答
  • 调整 Flink 任务的资源配置:

    调整 Flink 任务的并行度,合理分配 TaskManager 和每个 TaskManager 分配给 Task 的内存大小。
    使用 RocksDB State Backend,此后端适合处理大状态场景且数据存储在磁盘上。
    优化 Flink CDC 连接器的配置:

    如使用 Debezium 连接器,则可以通过配置 debezium.snapshot.fetch.size 控制在快照阶段每次读取的行数。
    对于 Debezium PostgreSQL 连接器,确保使用 wal2json 插件来提高性能。
    管理 PostgreSQL 复制槽:

    确保 PostgreSQL 生命周期配置得当,例如 wal_keep_segments 设置为足够的值以保证 WAL 日志不会在 Flink 处理之前就被删除。
    如果曾因复制槽而消耗过多资源,考虑定期清理不使用的复制槽。
    处理拥塞的 Flink 检查点:

    调整 checkpointing 配置,优化检查点间隔和最小暂停时间以减缓快照速度,并发运行检查点以避免过高的延迟。
    当处理高数据吞吐时,使用异步快照以免阻塞数据处理。
    调整网络和缓冲区配置:

    增加 Flink 的网络缓冲区大小,以应对高数据吞吐量。
    如果由于网络通信问题导致积压,可以尝试增加 taskmanager.network.memory.fraction 或 taskmanager.network.memory.min/may 的值。
    监控性能和资源使用情况:

    监控 Flink 任务的吞吐量、延迟和资源使用情况,及时响应可能的性能瓶颈。
    优化业务逻辑:

    如果可能,优化业务逻辑,减少一次性更新的数据量。
    启用 backpressure 监控:

    通过 Flink 的 Web UI 监控 backpressure 情况,并相应地调整配置。

    2024-02-26 17:57:04
    赞同 展开评论 打赏
  • GitHub https://github.com/co63oc/cloud

    测试内存占用,如果较少增加内存

    2023-02-11 18:26:51
    赞同 展开评论 打赏

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

相关产品

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

    更多
    任庆盛|Flink CDC + Kafka 加速业务实时化 立即下载
    内存取证与IaaS云平台恶意行 为的安全监控 立即下载
    云服务器ECS内存增强型实例re6全新发布 立即下载