java - 如何使用水平或垂直缩放在java中读取大文件并写入文件

标签 java multithreading

最近我在一次采访中被问到,如何在java中读取大文件(1TB的单个文件)。我说通过使用Threading,我们将创建两个File对象,一个线程将从头开始读取它,另一个线程将从头开始读取它从最后读起。也许这是愚蠢的答案。面试官给出了提示,通过使用水平/垂直缩放、聚类。 我在 Google 中看到没有水平/垂直缩放、聚类和读取文件的示例。任何人都可以帮忙

最佳答案

这个面试问题相当开放;它试图让你大声说话和思考。会有很多答案。

我个人的解读:

两种缩放都不涉及类或框架。它们是架构中的概念。如果您对此不清楚,请从维基百科开始。

垂直扩展:在这里他们可能希望您了解如何提高单个主机的性能以完成这个巨大的文件作业。当然,这涉及更好的磁盘、raid、多线程。如果任何 CPU/内存负载很重,可能需要更多的 cpu 和内存。

水平扩展:这通常是关于如何将问题划分到多个 jvm 主机上,以分而治之、分散/聚集的模式同时处理文件。

关于java - 如何使用水平或垂直缩放在java中读取大文件并写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35204446/

相关文章:

java - 如何序列化包含java中对象的对象?

java - 我如何强制方法的实现在 Java 中的 try-catch block 中?

c++ - 线程更新类对象

c# - 发送大量数据时“连接被远程主机强行关闭”

java - Groovy - 对象重用。

java - 当线程中断时继续 hibernate 剩余时间

java - 从 S3 并行读取多个文件(Spark、Java)

java - 如何在 netbeans 项目中导入库?

Java 从数组中获取范围

multithreading - Delphi - 线程框架