azure 使用服务总线触发器向外扩展功能应用程序

ecfsfe2w  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(118)

有关使用Event Hub触发器缩放Function App的文档规定:
触发器(由事件中心提供支持)确保只有一个EventProcessorHost示例可以获得给定分区的租约。
...
当发生缩放时,[功能应用程序的] N个示例是大于事件中心分区数量的数字
考虑到我有一个配置了32个分区的Event Hub,在负载下,我理解了为什么Function App至少扩展到32个示例,每个示例锁定到一个特定的分区。

内容

我想将Event Hub替换为Service Bus
Service Bus中发送的所有消息都被设置为Session ID以保证顺序。
正如文档中所解释的,Session ID将被用作Partition Key,这意味着我将有很多分区(即超过20,000个分区-我认为这是可以的)。

问题

Function App的扩展是如何工作的?Service Bus分区是否像Event Hub一样绑定到Function App的示例?或者Function App的任何示例都可以从任何分区获取消息?

yjghlzjz

yjghlzjz1#

Service Bus中的分区功能通过在后台使用多个代理来大大提高队列或主题的吞吐量。客户端在连接时并不真正意识到这一点,而是像常规队列或主题一样工作。
因此,Azure函数无法向外扩展到它不知道的分区数量。
相反,当队列或主题中等待处理的消息越来越多时,它只是根据等待处理的消息数量进行扩展。

相关问题