如何快速发送大量POST请求

How to send lots of POST requests QUICKLY

本文关键字:POST 请求 何快速      更新时间:2023-10-16

我计划为我们大学的研究开发一个程序,该程序必须向不同的url发送大量的帖子请求。它必须尽快工作(我们应该处理大约10万个url)。我应该使用什么语言(目前我正在用c++、delphi和perl写一些)?

此外,我听说可以使用prefork在perl中编写一个多线程应用程序,该应用程序每分钟可以处理大约20-30k。这是真的吗?

//很抱歉我的英语不好,但这似乎是我唯一能得到正确答案的地方

Andrew

每分钟20-30公里是完全任意的。如果你在一台拥有强大网络连接的8核机器上运行,你可能会超越它。

然而,我认为您对编程语言/库的选择在这里并不重要。相反,您将遇到机器允许的并发TCP连接数,以及链路本身的带宽。

Webserver Stress Tool声称能够模拟多达10000个同时用户生成的HTTP请求,并且在Torry的网站中有一个条目:可能是用Delphi或C++Builder编写的。

我的建议:

您可以使用Delphi编写自定义压力工具(HTTP(S)Client)(它恰好是我最喜欢的语言,所以我提倡它),并使用诸如RTC SDK和OmniThreadLibrary之类的轻量级HTTP(S)库进行多线程处理。

有关线索/提示,请参阅本页。


编辑:

摘录自RealThinClient_SDK331.zip 中的Demos\Readme_Demos.txt

应用程序客户端、服务器和ISAPI演示可用于压力测试RTC通过打开使用具有强加密的远程函数的组件来自每个客户端的数百个连接带有请求的服务器/ISAPI。

App Client Demo是压力测试RTC远程功能的理想选择,使用多线程模式下的多个连接,可视化显示活动以及活动图中每个连接的阶段。客户可以选择在"代理"和标准连接组件之间,查看带宽使用和分布的差异。

我听说Erlang非常适合这样的应用程序,因为它非常高效地在Erlang中快速生成许多进程。但我认为使用Python也可以,只需使用popen模块生成多个进程即可。毕竟,根据机器的处理器数量,您可以同时运行的处理器数量是有限的。语言的选择可能并不重要,这取决于你对从这些URL下载的数据所做的处理,因为这可能比生成的成本更需要处理。