当前位置: 首页 > 知识库问答 >
问题:

当Spring Boot Application启动时,是否可以使用Spark将数据加载到内存中?

邹锦
2023-03-14

我是Spark和Spring Boot Framework的新手。我尝试过在3个节点的火花集群中处理数据库的1亿记录,每个节点有16 Gigs的RAM和4个内核,在我将完整的1亿记录缓存在内存中之后,它的工作速度非常快,所以我的主要目标是在我的Spring Boot应用程序(我正在编写它以使一些RESTful Services在火花上下文上运行)启动时加载和缓存内存中的记录。如何在应用程序启动时准确加载和缓存1亿记录。

共有1个答案

杨昊
2023-03-14

您可以监听应用程序的启动并启动线程来加载记录。

public class CacheLoadListener implements ApplicationListener {

    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof ContextRefreshedEvent) {
            //Start a thread/job to load your data
        }
    }
}

配置文件中

@Bean
public CacheLoadListener cacheLoadListener() {
    return new CacheLoadListener();
}
 类似资料:
  • 我正在尝试在Java服务器端应用程序中使用ehcache来缓存一些数据。如何在服务器启动时将一些初始数据加载到ehcache。应用程序是具有Spring和数据库连接的基于Web的应用程序。任何人都可以让我知道如何定期刷新这些缓存。 谢啦

  • 问题内容: 我经常使用Scanner类来读取文件,因为它非常方便。 我的问题是,以上语句是否一次将整个文件加载到内存中?或者在fileScanner上进行后续调用,例如 从文件中读取(即从外部存储而不是从内存中读取)?我问是因为我担心如果文件太大而无法一次全部读入内存会发生什么。谢谢。 问题答案: 如果您阅读了源代码,则可以自己回答问题。 看来所讨论的Scanner构造函数的实现显示: 后者包装在

  • 问题内容: 我有一个.jsp页面,其中有一个GUI表,该表显示来自Oracle数据库的记录。该表允许典型的分页行为,例如“ FIRST”,“ NEXT”,“ PREVIOUS”和“ LAST”。记录是从Java ResultSet对象获得的,该对象是从执行SQL语句返回的。 这个ResultSet可能很大,所以我的问题是: 如果我的ResultSet包含一百万条记录,但是我的表仅显示ResultS

  • 我想在我的Spring Boot应用程序启动时加载缓存中的数据。我知道在Ehcache2中使用BootstrapCacheLoader有一种集成的方法。如何在应用程序启动时将数据从数据库加载到Ehcache,但我在Ehcache3中没有看到这一点。我仍然可以在@postConstruct方法中手动完成。但我想知道是否有集成解决方案(Spring 5,Ehcache 3) 谢谢你。

  • 我可以使用Azure Key Vault加密和解密Microsoft Azure Storage中的Blob,但是否可以使用Azure Storage数据移动库进行同样的操作。下面是我在azure存储数据移动库中使用的代码

  • 我刚接触Cassandra Spark,并尝试使用Spark主集群将数据从文件加载到Cassandra表。我遵循以下链接中给出的步骤 http://docs.datastax.com/en/datastax_enterprise/4.7/datastax_enterprise/spark/sparkImportTxtCQL.html 在第8步,数据显示为整数数组,但当我使用相同的命令时,结果显示为