我们正在将我们的网站迁移到azure,现在有一个问题,现在有以下例外:
无法执行套接字上的操作,因为系统缺少足够的缓冲区空间或者队列已满;
我们为德国的长途巴士开发了一个搜索引擎,每天都有数千个外部服务请求:
我猜,每天大约有250,000个电话。或多或少的所有时间都很快很短。我们对所有外部api的超时时间为8秒或更短,以防止挂起请求。
外部api主要通过以下类访问:http://pastebin.com/evNUVMXp
到目前为止它运行良好,但一切都只在一台机器上运行。目前,我有2个mongodb
的vms和一个运行3个大型实例的网站。
我有什么想法可以解决这个问题?
感谢您的帮助: 塞巴斯蒂安
答案 0 :(得分:0)
您可以尝试设置
ServicePointManager.DefaultConnectionLimit
到更高的数字,例如100,并测试出来。
以下是文档:
答案 1 :(得分:0)
我认为托管数据库的服务器需要增加它允许的动态端口限制。 解决方案描述为https://github.com/giggsey/libphonenumber-for-php/blob/master/src/PhoneNumberFormat.php。
祝你好运。
答案 2 :(得分:0)
我遇到的主要问题是CosmosDB客户端实例。建议在应用程序内部将其用作静态对象。
因此,我建议引入数据客户端以用作Singleton。
因此它在应用程序中的用法将是:
DataClientFactory<EntityData>.Instance.DocumentDbRepository
在DataClientFactory
处实现Singleton模式,而DocumentDbRepository
在CosmosDB客户端API(或您正在使用的数据客户端)周围实现存储库模式。
CosmosDB客户端(似乎还有其他一些客户端)在并行请求方面似乎设计得非常主动。