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