具有多个侦听器的 Azure 事件中心

Azure Event Hub with multiple listeners

是否可以在同一个应用程序中使用具有多个侦听器的 Azure 事件中心? 我正在寻找的是将事件触发到单个集线器并让两个 Azure Functions 侦听它,以便它们都可以基于同一事件执行任务。

我当时已经通过“消费者组”实现了这一点,但这感觉不对,因为我觉得当您有多个应用程序读取事件时应该使用它。

是否有更好的机制可以做到这一点,还是我看错了?

谢谢

是的,这是可能的。这样做的最佳方法的一般答案是“这取决于您的应用程序”。在您描述的场景中,由于 Azure Functions 绑定的工作方式,您将需要使用两个单独的使用者组。

在内部,函数绑定使用一个事件处理器,该事件处理器将尝试与针对消费者组工作的其他处理器协作以共享工作并防止两个实例从同一分区读取。如果您也在应用程序中托管其中一种事件处理器类型,则会发生相同的协作。

对于 Event Hubs SDK 中可用的其他使用者类型,只要您的使用者少于记录的 quotas,针对同一使用者组工作就不是问题。 (在撰写本文时,每组 5 个消费者)