HTTP/SSH/TCP/Ping并行客户端 Parallec

简介:

Parallec 详细介绍

image

Parallec是一个基于Akka的快速并行异步HTTP(S)/SSH/TCP/UDP/Ping 客户端的Java库。它是eBay云计算部门开发并在REST Superman基础上开源的。Parallec的寓意是"并行客户端": Parallel Client, 发音如 "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进行反馈。谢谢!

image

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

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

文章转载自 开源中国社区[https://www.oschina.net]

相关文章
|
4天前
|
缓存 网络协议 安全
计算机网络 TCP、RPC、GRPC、HTTP 对比
【1月更文挑战第1天】计算机网络 TCP、RPC、GRPC、HTTP 对比
|
7月前
|
网络协议 安全 Shell
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
468 0
如何在 SSH 客户端中强制使用 IPv4 或 IPv6?
|
7月前
|
Ubuntu Linux 网络安全
SSH客户端连接远程服务器
一、什么是客户端连接远程服务器 发起连接的一方,计算机或设备(称为客户端)与另一个计算机或设备(称为远程服务器)建立连接。 客户端通过网络连接到远程服务器,远程服务器则是提供所需服务或资源的一方。 客户端通常使用特定的协议(如SSH、HTTP、FTP等)与远程服务器进行通信。 示例:你使用SSH客户端从本地计算机连接到远程服务器以执行远程命令。 二、什么是服务端连接远程服务器
209 1
|
3天前
|
消息中间件 网络协议 开发工具
MQ产品使用合集之rocketmq5.x只有tcp接入点吗,python sdk需要http接入点,请问怎么使用
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
14 2
|
4天前
|
网络协议 网络安全 程序员
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
socket,tcp,http三者之间的原理和区别
|
4天前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
69 3
|
4天前
|
缓存 负载均衡 网络协议
【亮剑】一次完整的HTTP请求的重要性和详细过程
【4月更文挑战第30天】本文介绍了HTTP请求的重要性和详细过程。首先,DNS解析将域名转换为IP地址,通过递归和迭代查询找到目标服务器。接着,TCP三次握手建立连接。然后,客户端发送HTTP请求,服务器处理请求并返回响应。最后,理解这个过程有助于优化网站性能,如使用DNS缓存、HTTP/2、Keep-Alive、CDN和负载均衡等实践建议。
|
4天前
|
网络协议 Linux Windows
TCP/IP、Http、Socket之间的区别
TCP/IP、Http、Socket之间的区别
|
4天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
4天前
|
安全 网络安全 数据安全/隐私保护
Termius 一款优秀的跨平台 SSH 客户端工具
Termius 一款优秀的跨平台 SSH 客户端工具