当前位置: 首页 > 编程语言 > C#

服务结构:服务之间的调用是否延迟?共享

时间:2023-04-10 14:35:26 C#

服务结构:服务之间的调用是否延迟?我们正在开发一个由许多不同服务组成的ServiceFabric应用程序,我们的应用程序工作方式的一个关键部分是这些服务相互进行大量调用。直到最近,当我们增加应用程序的负载并注意到它的速度大大降低时,我们才遇到任何问题。经过大量调查和计时,我们发现问题似乎是当我们对一种类型的服务(我们有多个实例)进行大量调用时,这些调用似乎在我们调用该服务之间存在一些延迟,该服务实际上开始处理请求。我们像微软这里描述的那样在服务之间进行调用:ServiceA获取对ServiceB的引用,然后调用ServiceB.GetResult(),我们记录在ServiceA中何时调用此方法,我们在GetResult()中做的第一件事就是记录何时处理开始了。当没有负载时,只有几毫秒,一旦我们增加负载,我们就会看到这些时间之间有4-5秒的延迟。这是服务结构的某种限制吗?我们有多个ServiceB实例,集群上的资源占用基本没有,CPU占用率大约10%,所有节点内存占用率大约1/4,但是服务的吞吐量很低,因为它在这里等待。为什么要等?服务一次可以处理的不同调用是否有某种定义的限制?我们的沟通有问题吗?谢谢。MaxConcurrentCalls设置似乎是我需要的。连接到服务时:FabricTransportSettingstransportSettings=newFabricTransportSettings{MaxConcurrentCalls=32};ServiceProxyFactoryserviceProxyFactory=newServiceProxyFactory((c)=>newFabricTransportServiceRemotingClientFactory(transportSettings));service=serviceProxyFactory.CreateServiceProxy(serviceUri);以上是监听器:C#学习教程:服务结构:服务之间的调用是否有延迟?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——protectedoverrideIEnumerableCreateServiceInstanceListeners(){FabricTransportListenerSettingslistenerSettings=newFabricTransportListenerSettings{MaxConcurrentCalls=32};returnnew[]{newServiceInstanceListener((context)=>newFabricTransportServiceRemotingListener(context,this,listenerSettings))};}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: