Azure 服务总线:使用函数、服务结构和 Web 作业? [关闭]

Posted

技术标签:

【中文标题】Azure 服务总线:使用函数、服务结构和 Web 作业? [关闭]【英文标题】:Azure service bus: Use functions vs service fabric vs web job? [closed] 【发布时间】:2018-07-10 04:44:25 【问题描述】:

我正在考虑构建服务总线主题侦听器的三种方法:

    Azure 函数:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus

    服务结构:https://iamrufio.com/2017/04/21/azure-service-bus-listener-with-azure-service-fabric/

    网络作业:https://code.msdn.microsoft.com/Processing-Service-Bus-84db27b4

我不确定该走哪条路。我倾向于 Azure 功能,因为它具有直接的开箱即用服务总线集成。但是,由于它相当新,我不确定它是否安全。

据我所知,Service Fabric 提供了最大的弹性和支持。

而且选择网络作业是最安全的,因为一切都很容易配置,但我担心我会重新发明***,因为没有提供开箱即用的支持。

什么方向最好?

【问题讨论】:

如果您应该使用 Service Bus,请务必检查:github.com/loekd/ServiceFabric.ServiceBus 和 nuget.org/packages/ServiceFabric.ServiceBus.Services 【参考方案1】:

这是一个非常开放的问题。您应该查看您的要求和其他限制,例如预算。例如,运行生产级 Service Fabric 群集将需要至少 5 个节点。与运行 webjob 相比,这需要一个具有一定扩展性的托管计划(对于 HA)。与使用消耗计划运行 Azure Functions 相比,只有在免费授予 100 万个请求和每月 400,000 GB-s 的资源消耗用完后,您才需要为每次执行付费。

我建议从简单的 Azure Functions 开始。创建你的原型,看看这是否是你需要的。您是否遇到问题。使用 Azure 服务总线的 Functions 使用可能会受到一定程度的限制。例如,您不能死信一条消息,因为您要么必须成功返回才能完成它,要么抛出异常重试。您不能推迟消息,而是需要发送另一条消息。也不能通过 Azure 服务总线的发送方式来使用事务选项。

如果您发现自己需要这些功能,WebJob 将是我的下一个候选人。你将不得不看看你将如何利用它。您很可能需要创建自己的接收泵并处理免费提供的功能,但您将拥有创建多个连接、按照您需要的方式配置客户端等所需的灵活性。

只有在那之后,如果您发现除了 Service Bus 之外,您还有数据分区、HA 或 DR 等要求,或者部署和横向扩展多个服务,我会更认真地考虑 Service Fabric。

这 3 种技术中的每一种都有自己的位置和用例。

【讨论】:

这正是我想要的。把事情放在眼里。谢谢详细解释! 您可以在本地使用您在此处提到的任何排队技术吗?我们有 SF on prem,需要排队 OOB 解决方案 Azure 服务总线和 Azure 存储队列都可以在本地使用。您只需要注意您的消息将出站和入站,而不是留在本地。

以上是关于Azure 服务总线:使用函数、服务结构和 Web 作业? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 web api 中接收服务总线消息队列/主题

集成 Azure 服务总线主题和 Azure 函数

如何使用自定义 INameResolver 配置由服务总线触发的 Azure 函数?

Azure 函数 - 从 Azure 密钥保管库获取服务总线连接字符串

使用 Azure 服务总线的可扩展请求响应模式

Azure 服务总线队列性能