为什么默认情况下,ASP.NET Core的ServicePointManager.DefaultConnectionLimit仅设置为10?

问题描述

乍一看,在编写ASP.NET Core 3.1应用程序时,可能会认为只要您能够处理所有传入请求,就会将大量传出请求与其他API并发(例如,进行大量的传出API调用。)

我对此很疑惑,因为当我阅读有关实际进行了多少次调用的文档时,偶然发现ServicePointManager及其属性DefaultConnectionLimit。根据{{​​3}},认值似乎是10:

ServicePoint允许的最大并发连接数 目的。对于ASP.NET托管,认连接限制为10 申请和2个其他申请。

例如ServicePointManager使用此HttpClient,因此即使您每秒处理1k传入请求,通过HttpClient发出的请求的数量也绝不会超过10。给定时间。这就是我不了解的-如何扩展得好?我天真的想法是,.NET Core本身并没有限制传出请求的数量,如果您的API通过取消请求耗尽了其他API,这将由您来决定,但是显然,这绝不会发生。框,因为认情况下ServicePointManager禁止这样做。

我已经看到docs在启动时“建议”调用ServicePointManager.DefaultConnectionLimit = int.MaxValue

但是为什么首先将其设置为10这样的低值?并将其设置为int.MaxValue是否合理?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)