Fast Parallel Async HTTP/SSH/TCP/UDP/Ping Client Java Library. Aggregate 100,000 APIs & send anywhere in 20 lines of code. Ping/HTTP Calls 8000 servers in 12 seconds. (Akka) www.parallec.io
Parallec 是一个基于Akka的快速并行异步HTTP(S)/SSH/TCP/UDP/Ping 客户端的Java库。它是eBay云计算部门开发并在REST Commander基础上开源的。Parallec的寓意是**“并行客户端”**: Parallel Client, 发音如 “Para-like”. 更多说明请见这里。
主要用途:
Parallec内置特别的响应上下文(response context),在处理服务器回复(Response)时能方便快捷的传入,传出任何对象,比如各种客户端(比如elastic search, graphite, kafka, mongodb etc),以便汇集处理数据到任何地方。 样例程序仅需20行代码,就可以汇总10000个API的回复以简单可控的并行速度发送汇总到Elastic Search。
和REST Commander类似,Parallec非常高效并且可以处理大量响应。 比如其Ping服务器的速度是目前使用最广泛并行Ping 软件FPing的2倍,仅用12秒就可以ping 8000服务器。(请看Ping视频演示) 同样的对于并行HTTP, Parallec发送HTTP请求到8000 Web服务器 并聚集响应只需12秒 (聚集到内存),或16秒(聚集到Elastic Search)(请看HTTP视频演示)
通过过去一年内部使用和开源REST Superman/ REST Commander的开发, 反馈,经验教训,我们现在做把REST Commander的核心做成一个易于使用的独立库 (便于从Maven导入,让所有程序都写20行代码变成REST Commander)。在此基础上,我们添加超过15个新的功能,改写超过70%的代码,以90%以上的测试覆盖率,确保了用户和开源贡献者能够更加放心的开发和使用。与此同时,我们也把整体软件结构进行了优化,使得大部分内部开发可以直接在github开源平台上直接进行。
生产环境使用案例:广泛用于基础设施软件作为轮询和聚合引擎:
“Parallec.io现已经被集成在eBay的应用程序部署系统(PaaS)。Parallec被用于控制10个以上的并行API的任务的工作流,每个任务并行执行到数十到数千台的生产服务器的上。与以前的实现相比,Parallec 处理并行操作代码简洁,方便进行批作业的管理,为我们提高了资源利用率和效率。”
-- Xiaotang (Sheldon) Shao, Principle Software Engineer, Deployment Platform / PaaS, Cloud Engineering at eBay Inc.
“eBay 网络智能分析组目前的几个项目都需要并行执行万级到十万级的API到第三方的服务器,这毫无疑问是我们最大的瓶颈。因此我们一致在寻找一个高效的异步I/O的解决方案。使用Parallec,不但显著的提升了性能,同时有效的减少了资源的使用。 ” -- Tomer Balan, Data Extraction Engineer, Structured Data at eBay Inc (以色列).
您可以用5分钟按照样例程序试试Parallec去给多个服务器(网站)发送相同或者不同的请求。我们渴望收到您的意见和建议。您可以通过提交Github Issue, 查看FAQ,登陆论坛 Parallec.io Google Group进行反馈或者提问。谢谢!