簡體   English   中英

在不同的IIS服務器上並發執行大請求

[英]Concurrent execution of large request across different IIS servers

我在IIS中擁有REST Web API服務,該服務接受請求對象的集合。 用戶可以輸入100多個請求對象。 我的服務跨20台IIS服務器部署。

我想同時運行這100個請求,然后匯總結果並發回。 這涉及I / O操作(為每個請求調用后端服務)和CPU綁定操作(以計算少量響應元素)。

當我的控制器收到請求時,我們可以在同一台或不同計算機上的所有20台IIS服務器之間拆分和共享該請求,以加快處理速度。 請提出任何選擇

我無法提供詳細的實現,但您必須執行以下操作。

有很多解決方案,我可以建議其中一種。

解決方案1

  1. 您的一個主要應用程序收到了請求。 (要求提供100個對象或更多)。

  2. 現在,此應用程序具有有關您的其他20個站點或URL的信息。 (此網址也可以存儲在配置文件或XML文件中)

  3. 另外,您還必須確定每個服務器應一次處理一個或多個對象。 (您可以創建這樣的配置並將其存儲在web.config中)

  4. 現在,根據您的請求,創建httpClient來調用RestApi並提供每個數據。 確保使用異步模型,以便可以利用異步功能。

  5. 例如,如果每個服務器和服務器配置僅考慮一個對象(服務器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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM