调用HTTP API的网络限制?

时间:2013-10-24 06:11:02

标签: multithreading api networking network-programming httprequest

这是一个假设的情况:

说我在一个线程中通过数据集进行迭代,并对Web上的某些API的每个条目进行HTTP调用。假设API不使用限制,我是否应该期望来自调用的非降级性能?因为,当我循环访问条目时(由于各种原因,可能与网络相关)或者所有内容都应该是可以预测的那样,我是否会开始看到故障在某个时刻累积?

现在,假设我开始使用线程池进行上述迭代。我想每个线程都会打开一个到目的地的出站端口。是什么决定了我可以用来调用相同API的最大线程数?随着线程数量的增加,性能或成功率会如何降低?

1 个答案:

答案 0 :(得分:0)

不确定这是否仍然相关但无论如何: 在方案a)中,我不会指望任何负面影响,因为您将在任何时候只有一个请求/响应运行。因此,吞吐时间应仅取决于服务器处理请求的速度。

在方案b)中,一个限制是您的客户端(即操作系统)在任何给定时间打开的最大连接数(tcp或udp)。同样当然也适用于另一方。如果这个数字不是一个限制因素,我预计服务器会因一定数量的请求而关闭。你将创建自己的DoS攻击; - )