每当我从另一个呼叫一个服务结构服务时,代理上的第一个呼叫非常慢,即比所有后续呼叫慢100倍。我已经把时间记录在电话前的那个时间,然后立刻调用服务方法,这很容易超过60秒!服务架构群集是运行在12个节点/虚拟机上的独立群集。ServiceFabric代理的初始呼叫非常慢
有趣的是,第一次调用的时间长度似乎与节点的数量有关,即如果我停用一半节点,则时间减少(尽管不是一半)。另外,当在本地PC上运行的开发集群上运行完全相同的代码时,第一次呼叫的时间长度通常约为8秒,随后的呼叫在任一系统上都会花费< 10毫秒。此外,在同一客户端进程中为同一服务创建另一个代理仍然会导致快速的通话时间,看起来好像代理工厂(我相信SF按每个客户端进程缓存)是在首次使用代理时创建的,很长时间。
有趣的是,没有任何例外情况发生,而且服务真正起作用!
所以我的问题是,为什么第一次在使用ServiceProxy.Create()创建的代理上从一个服务调用另一个服务需要很长时间?