消息队列触发器的可伸缩性是不是比 Http 触发器更好?

Posted

技术标签:

【中文标题】消息队列触发器的可伸缩性是不是比 Http 触发器更好?【英文标题】:Are Message Queue Triggers betters than Http Triggers for scalability?消息队列触发器的可伸缩性是否比 Http 触发器更好? 【发布时间】:2019-01-13 23:37:33 【问题描述】:

Azure Functions 的两种触发器是消息队列和 http 触发器。我猜一个区别是,如果没有足够的实例来服务请求,则使用 http 触发器可能会拒绝请求,而使用消息队列,它将检查是否有可用的实例,如果没有,则在尝试之前启动一个实例处理消息。这样理解正确吗?

【问题讨论】:

【参考方案1】:

不完全..!我想你是从here那里得到信息的:

尽可能将大型函数重构为较小的函数集,这些函数集可以协同工作并快速返回响应。例如,webhook 或 HTTP 触发函数可能需要在特定时间限制内的确认响应; webhook 需要立即响应是很常见的。

在一定时限内的确认是关于客户端愿意等待多长时间的响应。因此,如果您要执行一些需要很长时间(大约几分钟)的任务,您可能不会收到信息性响应,因为客户端只会调用连接死机。但是,只要您的函数保持在functionTimeout 限制内(一个消费计划,默认为 5 分钟,最长为 10 分钟),您的函数仍然可以正常执行。

【讨论】:

以上是关于消息队列触发器的可伸缩性是不是比 Http 触发器更好?的主要内容,如果未能解决你的问题,请参考以下文章

Azure 函数队列触发器:如何设置出列消息的时间延迟

消息队列:我们可以在消息进入队列时触发事件吗?

Azure 队列触发器不适用于 Java

如何在服务总线队列触发功能中将服务总线消息移动到死信

从 SQL 向 Azure 服务总线队列添加消息

天蓝色队列中的消息消失