我在IIS中有REST Web API服务,它接收一组请求对象。用户可以输入超过100个请求对象。我的服务部署在20台IIS服务器上。
我想同时运行这个100请求,然后汇总结果并将其发回。这涉及I / O操作(调用每个请求的后端服务)和CPU绑定操作(计算少量响应元素)。
当我的控制器收到请求时,我们可以拆分并在相同或不同机器中可用的所有20个IIS服务器之间共享请求,以加快处理速度。请建议任何选项
答案 0 :(得分:1)
我无法提供详细的实施,但您必须做以下事情。
有很多解决方案,我可以建议其中一个。
解决方案1
您的一个主要应用程序会收到请求。 (请求包含100个或更多对象)。
现在,此应用程序包含有关您的其他20个网站或网址的信息。 (此网址也可以存储在配置或XML文件中)
此外,您必须确定每个服务器应一次处理一个或多个对象。 (您可以在web.config中创建此类配置并存储)
现在根据您的请求创建httpClient以调用RestApi并提供每个数据。确保使用异步模型,以便利用异步功能。
例如,如果我只考虑每个服务器和服务器配置一个对象(数组中的服务器URL存储)
int requestCnt = 0;
foreach(var request in Requests)
{
HttpClient client = new HttpClient();
client.Url = Server[request % 20];
client.PostAsync()
}
注意:这只是示例,因此您必须处理详细实现部分。