从.net Core中的webapi调用grpc服务的策略

时间:2018-04-29 04:26:18

标签: c# .net docker .net-core grpc

我在API核心中有一个休息/网络.Net我用作聚合服务来调用gRPC services中的某些基础.Net core。对于WEB API客户端,我在启动时将该通道创建为单例,并使用依赖注入将其注入需要它的位置。我也在考虑在启动时为grpc services创建客户端,然后注入它们。在Startup上创建频道和客户端是正确的策略,还是应该在web API的每个请求上创建和关闭频道和客户端?此外,如果创建一次通道是正确的策略,我如何确保在关闭时关闭通道.... web API/rest服务和grpc services都将在{{1}上运行作为docker containers。

1 个答案:

答案 0 :(得分:0)

您绝对不应为每次通话创建新频道。 gRPC频道应该是长寿命的,如果您创建一个频道,然后继续调用该频道上的后续呼叫,您通常会获得最佳性能和资源利用率。创建通道的确切范围取决于您的应用程序 - 但在应用程序启动时仅创建一次通道是可能的方法之一(还要注意,懒惰地创建TCP / IP连接 - 新连接不会成为创建,直到您在该频道上开始第一次通话。)

相关问题