具有多个Java线程时使用ApacheSpark的可行性

具有多个Java线程时使用ApacheSpark的可行性,java,multithreading,apache-spark,Java,Multithreading,Apache Spark,我正在开发一个Java应用程序,其中有大约450个线程。线程池的大小为25。每个线程的任务是调用8到9个Web服务,获取响应,解析响应XML并将提取的数据存储到数据库中。进入具有10到12列的数据库表的行总数约为30000 既然这里有很多并行处理,我们是否应该在这个场景中引入ApacheSpark?维护ApacheSpark集群和所有组件会增加额外的开销吗?我们如何在这里划分问题,将其作为Apache Spark的驱动程序?这是一个相当广泛的问题,但您应该遵循以下问题: 您的任务是否在处理数据

我正在开发一个Java应用程序,其中有大约450个线程。线程池的大小为25。每个线程的任务是调用8到9个Web服务,获取响应,解析响应XML并将提取的数据存储到数据库中。进入具有10到12列的数据库表的行总数约为30000


既然这里有很多并行处理,我们是否应该在这个场景中引入ApacheSpark?维护ApacheSpark集群和所有组件会增加额外的开销吗?我们如何在这里划分问题,将其作为Apache Spark的驱动程序?

这是一个相当广泛的问题,但您应该遵循以下问题:

  • 您的任务是否在处理数据?它可以获取数据、操作、保存或依赖副作用
  • 你的工作量是多少?一台计算机上只有一个JVM足以处理数据吗

如果第一个问题的答案是肯定的,第二个问题的答案是否定的,那么你可以考虑使用Skp.

你现在必须知道的事实是,火花:

  • 设计用于操作、聚合和处理数据
  • 用于分布式计算

所以,如果您不使用这些特性,可以使用Akka来实现简单的并行处理,甚至是分布式处理。Spark将是数据分析、机器学习、OLAP查询和图形处理的良好解决方案

目前使用Java多线程完成所有任务大约需要1小时分钟。而且数据操纵还没有达到那个程度。