每當我從另一個呼叫一個服務結構服務時,代理上的第一個呼叫非常慢,即比所有後續呼叫慢100倍。我已經把時間記錄在電話前的那個時間,然後立刻調用服務方法,這很容易超過60秒!服務架構羣集是運行在12個節點/虛擬機上的獨立羣集。ServiceFabric代理的初始呼叫非常慢
有趣的是,第一次調用的時間長度似乎與節點的數量有關,即如果我停用一半節點,則時間減少(儘管不是一半)。另外,當在本地PC上運行的開發集羣上運行完全相同的代碼時,第一次呼叫的時間長度通常約爲8秒,隨後的呼叫在任一系統上都會花費< 10毫秒。此外,在同一客戶端進程中爲同一服務創建另一個代理仍然會導致快速的通話時間,看起來好像代理工廠(我相信SF按每個客戶端進程緩存)是在首次使用代理時創建的,很長時間。
有趣的是,沒有任何例外情況發生,而且服務真正起作用!
所以我的問題是,爲什麼第一次在使用ServiceProxy.Create()創建的代理上從一個服務調用另一個服務需要很長時間?