当前位置: 首页 > 软件库 > 开发工具 > 测试工具 >

Parallec

HTTP/SSH/TCP/Ping并行客户端
授权协议 Apache
开发语言 Java
所属分类 开发工具、 测试工具
软件类型 开源软件
地区 国产
投 递 者 穆建元
操作系统 跨平台
开源组织 eBay
适用人群 未知
 软件概览

parallec logo

Parallec是一个基于Akka的快速并行异步HTTP(S)/SSH/TCP/UDP/Ping 客户端的Java库。它是eBay云计算部门开发并在REST Superman基础上开源的。Parallec的寓意是"并行客户端": ParalleClient, 发音如 "Para-like". 更多说明请见这里

主要用途:

  • 管理监控大量HTTP/TCP/UDP服务器,ping海量服务器
  • 集群机器状态、配置探索,基于HTTP(S)/TCP Agent 或者 无agent 的大量远程任务执行,软件部署. HTTP支持SSL 客户端认证
  • 海量API聚集到任意数据存储,数据流入口
  • 并行工作流,自动检测任务进度,以便支持并行处理异步API
  • 可控并行的,多个不同API请求到同一个HTTP服务器。HTTP请求模板可以在URL, HTTP Header, EntityBody不同地方进行变量替换。这样可以很方便的对那些有REST API的数据库或者网络服务器进行并行的CRUD操作。
  • 灵活的Web服务器的压力测试,并将结果传到任何地方。

其内置特别的响应上下文(response context),在处理服务器回复(Response)时能方便快捷的传入,传出任何对象,比如各种客户端(比如elastic search, 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.


您可以用5分钟按照样例程序试试Parallec去给多个服务器(网站)发送相同或者不同的请求。我们渴望收到您的意见和建议。您可以通过提交Github Issue进行反馈。谢谢!

下面地址有一些 Parallec 的相关示例:

https://github.com/eBay/parallec-samples

 相关资料
  • tcp 客户端例程 tcp 客户端例程 源码/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * *//* * 程序清单:tcp 客户端 * * 这是一个 tcp 客户端的例程 *

  • 提示 视频 PPT 下载 背景介绍 socket 编程一般采用客户端-服务器模式,即由客户进程向服务器进程发出请求,服务器进程执行请求的任务并将执行结果返回给客户进程的模式。 本教程介绍了如何编写一个基于 socket 编程实现的 TCP 客户端。我们先将 socket 编程的流程列出来,然后给出具体的实例。 TCP 客户端的 socket 编程流程 1. 创建 socket 2. 建立连接 3.

  • 我正在尝试通过 tcp 连接远程执行程序,我想在客户端之间实时共享标准输出和标准输出 我有以下没有错误处理的测试服务器:p我知道,目前我无法执行带有参数的程序,但这很容易处理:) 你看,我尝试与 c.Write() 共享标准输出,但这不起作用。 我认为cmd.Stdin的另一个问题将与Stdout的问题相同。此时我没有实现任何标准函数。 有人能给我一个关于这个函数的提示或示例代码吗?

  • 问题内容: 我可以使用Node.js的SSH客户端与服务器进行通信吗? 问题答案: 用纯JavaScript编写的SSH2客户端模块,用于node.js https://github.com/mscdex/ssh2 还要签出这个包装器 https://github.com/mikeal/sequest

  • 创建 TCP 客户端 最简单的方法来创建一个 TCP 客户端,使用默认选项如下所示: NetClient client = vertx.createNetClient(); 配置 TCP 客户端 如果你不想使用默认值,则创建TCP 客户端时,通过传入NetClientOptions实例可以配置: NetClientOptions options = new NetClientOptions().s

  • Coroutine\Client提供了TCP、UDP、unixSocket传输协议的Socket客户端封装代码,使用时仅需new Swoole\Coroutine\Client即可。 实现原理 Coroutine\Client的所有涉及网络请求的方法,Swoole都会进行协程调度,业务层无需感知 使用方法和Client同步模式方法完全一致 connect超时设置同时作用于Connect和Recv、

  • TCPClient 除了包含上面的继承自 SocketClient 的设置以外,还有以下几个可以设置的字段: Linger 字段 用于设置当连接中仍有数据等待发送或接受时的 Close 方法的行为。 如果其值小于 0(默认),Close 方法立即返回,操作系统停止后台数据发送;如果其值等于 0,Close 立刻返回,操作系统丢弃任何未发送或未接收的数据;如果其值大于 0,Close 方法阻塞最多