如何快速发送大量POST请求
How to send lots of POST requests QUICKLY
我计划为我们大学的研究开发一个程序,该程序必须向不同的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下载的数据所做的处理,因为这可能比生成的成本更需要处理。
- 如何使用boost/beast从HTTP POST请求中解析和提取有效负载?
- 如何使用 curl 将 POST 请求从 python 重写为 C++
- 从简单的 POST 请求中解析异常
- 使用 cpp-httplib 的 POST 请求
- C++:如何通过 curl 调用使用 HTTP post 请求发送二进制数据(protobuf 数据)
- C++中的 cURL POST 请求
- HTTP POST 请求不允许我定义上下文类型
- 如何在c++中使用libcurl发送POST请求并接收它
- 我想将 POST 请求从 arduino 发送到 mysql 工作台并保存值
- 如何捕获从 MFC Web 浏览器 c++ 发出的 GET/POST 请求
- 如何解决来自 arduino 的 post 请求的问题,在失败之前只收到 2-3 次
- C++ 对 nodejs 服务器的 POST 请求失败(基于套接字)
- Qt Post请求正在执行但失败
- 使用C REST SDK(Casablanca)的HTTP_CLIENT POST请求
- 使用CPP手动构建POST请求,并使用它提交php表单
- 如何在 qt main() 中运行 post 请求
- 如何修复401:发出POST请求时出现未经授权的错误C++/Qt
- 处理HTTP POST请求/响应
- HTTPS POST 请求与提升 asio
- 如何使用FastCGI C/C 应用程序访问POST请求的主体