0

我最近开始探索 Knative,并试图了解并发和自动缩放的工作原理。我理解(目标)并发是指可以为给定版本同时安排到单个 Pod 的请求数。

但是,我不确定我是否理解并发值大于 1 的影响。当 N 个请求被安排到同一个 Pod 时会发生什么?是否会按 FIFO 顺序一次处理一个?是否会产生多个线程以并行服务它们(可能竞争 CPU 资源)?

我很想设置 concurrency=1 并依靠自动缩放来处理通过多个 Pod 的多个请求,但我想这不是最好的做法。

提前致谢

4

1 回答 1

0

containerConcurrency是 Knative 基础设施的一个参数,指示您的容器一次可以处理多少个请求。

在 AWS Lambda 和其他一些功能即服务产品中,每个实例只会处理一个请求。这可能更易于管理,但某些语言(例如 Java 和 Golang)很容易使用线程请求模型同时支持多个请求。Cloud Foundry 和 App Engine 等平台支持这种更大的并发性,但不支持代码转换的“函数”模型。

Knative 介于这两者之间。由于您可以自带容器,因此您可以构建一个像 Lambda 期望的单线程应用程序容器并设置containerConcurrency为 1,或者您可以创建一个多线程容器并设置containerConcurrency更高。

于 2021-06-03T13:49:40.833 回答