首页 > 解决方案 > 分布式休息调用和聚合

问题描述

我有一个客户端用例,需要从 Web 休息服务加载大数据。这个 rest api 是高度可扩展的,处理超过 10000 个并发请求显然没有问题。

我的问题是,我需要同时使用此服务(1000 个请求)并在短时间内加载大数据。

问题:

1) Each request can return about 10-30MB of compressed json data.
2) My machine can't afford to make 1000+ requests on a 8 core 32G machine due to each thread blockking IO function
3) I'm looking for a distributed method to do this.
4) The service does provide pagination but this is very slow
5) I need a synchronous solution

我已经尝试过 AMS 服务并正在寻找类似 hadoop 的东西来做到这一点。尽管我的代码寻找一个 API 来包装这个休息服务来完成这种大数据加载。

标签: javaapache-sparkmapreducedistributed

解决方案


你的 8v32g 机器只能做很少的并发 8 个线程执行 rest API 调用。您应该寻找一个水平可扩展的解决方案,并牢记您想用 1000 * 30(30G 压缩数据)做什么。

Apache Livy 是一个跨 Spark 的休息服务,就像您提到的那样,它能够运行您的每个任务,即访问您的休息服务并接收 30MB 的 json 数据。

在这里查看 Apache Livy http://livy.apache.org/:。这仍在孵化中,但在 AWS 中可用。可能不推荐用于企业解决方案,但这可能是您正在寻找的!


推荐阅读