[英]Concurrent execution of large request across different IIS servers
我在IIS中擁有REST Web API服務,該服務接受請求對象的集合。 用戶可以輸入100多個請求對象。 我的服務跨20台IIS服務器部署。
我想同時運行這100個請求,然后匯總結果並發回。 這涉及I / O操作(為每個請求調用后端服務)和CPU綁定操作(以計算少量響應元素)。
當我的控制器收到請求時,我們可以在同一台或不同計算機上的所有20台IIS服務器之間拆分和共享該請求,以加快處理速度。 請提出任何選擇
我無法提供詳細的實現,但您必須執行以下操作。
有很多解決方案,我可以建議其中一種。
解決方案1
您的一個主要應用程序收到了請求。 (要求提供100個對象或更多)。
現在,此應用程序具有有關您的其他20個站點或URL的信息。 (此網址也可以存儲在配置文件或XML文件中)
另外,您還必須確定每個服務器應一次處理一個或多個對象。 (您可以創建這樣的配置並將其存儲在web.config中)
現在,根據您的請求,創建httpClient來調用RestApi並提供每個數據。 確保使用異步模型,以便可以利用異步功能。
例如,如果每個服務器和服務器配置僅考慮一個對象(服務器URL存儲在Array中)
int requestCnt = 0; foreach(var request in Requests) { HttpClient client = new HttpClient(); client.Url = Server[request % 20]; client.PostAsync() }
注意:這只是示例,因此您必須處理詳細實現部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.