首页 > 解决方案 > 服务器端的 gRPC 连接池

问题描述

我有一个要托管在 Azure Kubernetes 服务上的微服务集群。这些微服务基于 .NET Core,并将

在此处输入图像描述

我找不到一个好的解决方案的问题是在创建和销毁 pod 时“如何保持 gRPC”连接。

对于在混合网络上托管微服务来说,这似乎是一个非常微不足道的问题。我很想听听其他人是如何解决这个问题的。

标签: azurekubernetes.net-coregrpcazure-aks

解决方案


在这样的环境中 grpc 的持久性会很困难,因为 pod 根本不是持久性的。我会建议两种方法来处理这种情况

  1. 在 EKS 和 On Premises Service 之间使用/构建代理,该代理可以保持与本地服务的持久连接打开,但可以在创建/销毁 Pod 时添加/删除与代理的连接。该代理可以充当连接池并为本地服务调用提供更高的吞吐量。
  2. 不要担心与本地服务连接的持久性(将其视为 rdbms 连接,可以按需创建或销毁,但创建新服务需要一些成本)。如果创建或销毁 pod 的频率不高,这种方法就可以使用。

我建议第二种方法,以防豆荚的创建/销毁过于频繁(每小时很少),因为它的移动部件较少。但是,如果 Pod 的扩展过于频繁,则应使用方法一。


推荐阅读