问题描述
乍一看,在编写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 (将#修改为@)