最近我在一次采访中被问到,如何在java中读取大文件(1TB的单个文件)。我说通过使用Threading,我们将创建两个File对象,一个线程将从头开始读取它,另一个线程将从头开始读取它从最后读起。也许这是愚蠢的答案。面试官给出了提示,通过使用水平/垂直缩放、聚类。 我在 Google 中看到没有水平/垂直缩放、聚类和读取文件的示例。任何人都可以帮忙
最佳答案
这个面试问题相当开放;它试图让你大声说话和思考。会有很多答案。
我个人的解读:
两种缩放都不涉及类或框架。它们是架构中的概念。如果您对此不清楚,请从维基百科开始。
垂直扩展:在这里他们可能希望您了解如何提高单个主机的性能以完成这个巨大的文件作业。当然,这涉及更好的磁盘、raid、多线程。如果任何 CPU/内存负载很重,可能需要更多的 cpu 和内存。
水平扩展:这通常是关于如何将问题划分到多个 jvm 主机上,以分而治之、分散/聚集的模式同时处理文件。
关于java - 如何使用水平或垂直缩放在java中读取大文件并写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35204446/