微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么默认情况下,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 举报,一经查实,本站将立刻删除。