如何向 Azure Functions 的所有实例发送事件

How to intimate a Event to all the instances of Azure Function

我们有一个 Functions 应用程序,在峰值负载下可扩展到数百个实例,现在我们需要一种方法,如果发生特定事件(可能是队列中的新消息),所有实例都会收到通知,什么是实现这一目标的潜在方法,请指教..

一种模式是有一个公共标记(一个 blob),当公共状态更新时它会发生变化。每个实例都可以主动检查 blob 的 etag 以确定它的状态是否已更改,如果是,它知道重新加载其状态。 注意:

  1. 检查实例(而不是等待更改通知)很重要,因为大多数通知机制都可能存在滞后。例如,blob 触发器可能会滞后几分钟。
  2. 无法绕过负载平衡器并将消息发送到特定实例。所以你不能主动发送失效消息。

另一种模式是让你的状态完全外化到 Redis 之类的东西中。这很容易失效和更新。 (虽然这本质上只是先前建议的一个特例)