java - 分布式休息调用和聚合
问题描述
我有一个客户端用例,需要从 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 来包装这个休息服务来完成这种大数据加载。
解决方案
你的 8v32g 机器只能做很少的并发 8 个线程执行 rest API 调用。您应该寻找一个水平可扩展的解决方案,并牢记您想用 1000 * 30(30G 压缩数据)做什么。
Apache Livy 是一个跨 Spark 的休息服务,就像您提到的那样,它能够运行您的每个任务,即访问您的休息服务并接收 30MB 的 json 数据。
在这里查看 Apache Livy http://livy.apache.org/
:。这仍在孵化中,但在 AWS 中可用。可能不推荐用于企业解决方案,但这可能是您正在寻找的!
推荐阅读
- r - 闪亮的代码设计——我应该把复杂的逻辑放在哪里?
- apache - Host securely password protected static website, without creating security vulnerabilities, alongside other IIS websites
- android - 坏:进度对话框
- codenameone - 工具栏中的 SearchCommand 不再正确显示
- python - 制作电报机器人,如果用户想向机器人发送按摩,他必须加入频道
- javascript - Spotify 网络 API 结果“未定义”
- powershell - DelProf2 不删除远程配置文件
- node.js - 外部文件 404 Not Found 中的 NodeJS Express 路由
- vue.js - VueJS - Http 请求 - 父组件还是子组件?
- python - 在创建新变量时检查 groupby 中的每一行与该 groupby 中的所有行