我需要拆分我的雙工服務,並且想要將大型傳輸封裝到一個服務中並從其他服務中檢索。我曾經在一項服務中使用它,但現在需要從緩衝切換到流媒體,以考慮大小/內存調節。 我已經看到幾個問題here和here,但它們已經很老了在服務間共享數據
我會在服務之間使用什麼IPC命名管道?
服務A公開2種方法Guid Upload(stream)
,Stream Download(Guid)
,並使用的net.tcp流,這是運作良好,
現在我想堅持到服務B?這是命名的管道WCF嗎?
服務C - >業務層 - >服務B與Guid
,檢索和做項目的計算,堅持回到B
我的問題是用什麼樣的持久性/ 服務B
從客戶的角度來看
- 客戶端調用
ServiceA_Proxy.Upload(someLargeItem)
回報然後Guid
- 客戶端調用然後
ServiceC_Proxy.DoSomeWork(GuidFromCall_1)
- 客戶端調用
ServiceA_Proxy.Download(GuidFromCall_1)
- Client顯示到終端用戶
確實有一個例子,說明當我需要雙工管道和流式傳輸時,「從緩衝切換到流式通信不需要您將邏輯分成更多服務」?一切都在ServiceC完成,但上傳太大,我不能緩衝這些,所以我認爲一箇中央緩存將是要走的路 – Eric 2012-04-04 00:55:55
您的上傳量有多大?傳輸方式存在問題還是傳輸完成後存儲在內存中?你是對的,它不可能同時使用流媒體和雙工,但你應該考慮重新設計你的解決方案,在這種情況下使用請求重放而不是雙工。 – surfen 2012-04-04 01:17:54
增加/減少500MB - 2GB。當它是一個服務時,我會使用回調來處理上傳塊,處理並完成,並且稍後使用Dictionary進行檢索。當我們簽約時沒有考慮到這個大小,所以它只被測試了大於100MB,現在我得到了OOM異常。正在尋找一個快速修復,但這成爲相當騷動 –
Eric
2012-04-04 01:25:19