0

这是一个假设的情况:

假设我正在通过一个数据集在单个线程中进行迭代,并对 Web 上的某些 API 的每个条目进行 HTTP 调用。假设 API 不使用限制,我是否应该期望调用不会降低性能?例如,当我遍历条目时(由于各种原因,可能与网络相关),我是否会开始看到失败的累积,还是一切都可以预料到?

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

4

1 回答 1

0

不确定这是否仍然相关,但无论如何:在场景 a) 中,我预计不会有任何负面影响,因为您在任何时候都只会有一个请求/响应在运行。所以吞吐量时间应该只取决于你的服务器处理请求的速度。

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

于 2014-04-14T20:18:32.540 回答