限制跨 Azure 函数主机的并发调用数
Limit Number of Concurrent Calls Across Azure Function Hosts
要限制打开的数据库连接数,我需要限制并发函数调用的数量。
MassTransit 的 UseConcurrentMessageLimit
显然限制了每个主机实例将同时处理的消息数量,这与 host.json 中的 maxConcurrentCalls
相同吗?
Azure 门户具有 App Scale Out -> Maximum Scale Out Limit,它限制了将创建的主机数量。
要将同时函数调用的数量限制为 n,我应该设置 最大扩展限制 * UseConcurrentMessageLimit or maxCurrentCalls
= n?
我可以使用 MassTransit 或 Azure Functions 配置中的一个参数实现这一目标吗?
对于 MassTransit,对于给定的接收端点,ConcurrentMessageLimit
应该用于限制在该特定接收端点上执行的并发消费者数量。此设置仅影响该服务实例上的接收端点。
如果您有多个实例,硬性限制为 back-end 数据库有 100 个连接,并且每个实例的 ConcurrentMessageLimit
为 20,那么您最多可以有 5 个实例保持在 100 个连接限制内(假设每个消费者使用一个连接到数据库)。
Both UseConcurrentMessageLimit
and MaxConcurrentCalls
are deprecated and retained only for backwards compatibility. The only configuration value that should be used for current applications is ConcurrentMessageLimit
. This is covered in this video.
Azure 函数
嘿,你说的是 Azure Functions。 MassTransit 无法控制用于提取消息并将其传递给消费者的接收器。我认为 host.json
是您需要配置它的地方,它可能与 maxConcurrentCalls
类似。
要限制打开的数据库连接数,我需要限制并发函数调用的数量。
MassTransit 的 UseConcurrentMessageLimit
显然限制了每个主机实例将同时处理的消息数量,这与 host.json 中的 maxConcurrentCalls
相同吗?
Azure 门户具有 App Scale Out -> Maximum Scale Out Limit,它限制了将创建的主机数量。
要将同时函数调用的数量限制为 n,我应该设置 最大扩展限制 * UseConcurrentMessageLimit or maxCurrentCalls
= n?
我可以使用 MassTransit 或 Azure Functions 配置中的一个参数实现这一目标吗?
对于 MassTransit,对于给定的接收端点,ConcurrentMessageLimit
应该用于限制在该特定接收端点上执行的并发消费者数量。此设置仅影响该服务实例上的接收端点。
如果您有多个实例,硬性限制为 back-end 数据库有 100 个连接,并且每个实例的 ConcurrentMessageLimit
为 20,那么您最多可以有 5 个实例保持在 100 个连接限制内(假设每个消费者使用一个连接到数据库)。
Both
UseConcurrentMessageLimit
andMaxConcurrentCalls
are deprecated and retained only for backwards compatibility. The only configuration value that should be used for current applications isConcurrentMessageLimit
. This is covered in this video.
Azure 函数
嘿,你说的是 Azure Functions。 MassTransit 无法控制用于提取消息并将其传递给消费者的接收器。我认为 host.json
是您需要配置它的地方,它可能与 maxConcurrentCalls
类似。