有没有 大佬用 springboot 启动flink 处理 ,发现springboot 加 schedule调度处理会内存占满情况?

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 有没有 大佬用 springboot 启动flink 处理 ,发现springboot 加 schedule调度处理会内存占满情况?

是的,我遇到过类似的问题。在使用Spring Boot启动Flink处理任务时,如果使用了Spring Boot的@Scheduled注解进行定时任务调度,可能会出现内存占用过高的情况。这是因为Spring Boot的@Scheduled注解会在一个新的线程中执行定时任务,而这个新的线程会持有Flink环境的引用,导致Flink环境无法被垃圾回收。

解决这个问题的方法是在定时任务中使用Flink的executeAsync方法异步执行Flink任务。这样可以确保Flink任务在新的线程中执行,而不影响主线程。同时,由于Flink任务在新的线程中执行,所以Flink环境可以被垃圾回收,从而避免了内存占用过高的问题。

以下是一个示例代码:

@Scheduled(fixedRate = 5000)
public void executeFlinkJob() {
   
    ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    // 设置Flink任务的参数
    env.setParallelism(1);
    // 定义Flink任务
    DataSet<String> dataSet = env.readTextFile("path/to/your/file");
    dataSet.filter(value -> value.contains("keyword"))
            .writeAsText("path/to/output/file");
    // 异步执行Flink任务
    env.executeAsync("Flink Job Name");
}

在这个示例中,我们使用Spring Boot的@Scheduled注解设置了每5秒执行一次Flink任务。在执行Flink任务时,我们使用了executeAsync方法异步执行Flink任务,这样就可以避免内存占用过高的问题。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
目录
相关文章
|
6月前
|
Java 数据库连接 测试技术
SpringBoot入门 - 添加内存数据库H2
SpringBoot入门 - 添加内存数据库H2
279 3
SpringBoot入门 - 添加内存数据库H2
|
6月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
94 4
SpringBoot入门(4) - 添加内存数据库H2
|
3月前
|
Java 关系型数据库 MySQL
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
716 43
|
5月前
|
运维 监控 Java
为何内存不够用?微服务改造启动多个Spring Boot的陷阱与解决方案
本文记录并复盘了生产环境中Spring Boot应用内存占用过高的问题及解决过程。系统上线初期运行正常,但随着业务量上升,多个Spring Boot应用共占用了64G内存中的大部分,导致应用假死。通过jps和jmap工具排查发现,原因是运维人员未设置JVM参数,导致默认配置下每个应用占用近12G内存。最终通过调整JVM参数、优化堆内存大小等措施解决了问题。建议在生产环境中合理设置JVM参数,避免资源浪费和性能问题。
252 3
|
7月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
86 2
SpringBoot入门(4) - 添加内存数据库H2
|
6月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
106 13
|
6月前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
121 4
|
8月前
|
运维 数据处理 数据安全/隐私保护
阿里云实时计算Flink版测评报告
该测评报告详细介绍了阿里云实时计算Flink版在用户行为分析与标签画像中的应用实践,展示了其毫秒级的数据处理能力和高效的开发流程。报告还全面评测了该服务在稳定性、性能、开发运维及安全性方面的卓越表现,并对比自建Flink集群的优势。最后,报告评估了其成本效益,强调了其灵活扩展性和高投资回报率,适合各类实时数据处理需求。
|
6月前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
2470 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
zdl
|
6月前
|
消息中间件 运维 大数据
大数据实时计算产品的对比测评:实时计算Flink版 VS 自建Flink集群
本文介绍了实时计算Flink版与自建Flink集群的对比,涵盖部署成本、性能表现、易用性和企业级能力等方面。实时计算Flink版作为全托管服务,显著降低了运维成本,提供了强大的集成能力和弹性扩展,特别适合中小型团队和业务波动大的场景。文中还提出了改进建议,并探讨了与其他产品的联动可能性。总结指出,实时计算Flink版在简化运维、降低成本和提升易用性方面表现出色,是大数据实时计算的优选方案。
zdl
285 56