Azure 服务总线:使用函数与服务结构与 Web 作业?
Azure service bus: Use functions vs service fabric vs web job?
我正在考虑三种构建服务总线主题侦听器的方法:
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 函数,因为它具有直接的开箱即用服务总线集成。但是,由于它是相当新的,我不确定它是否是一个安全的选择。
根据我的阅读,服务结构提供了最大的弹性和支持。
选择 Web 作业是最安全的,因为一切都很容易配置,但恐怕我会重新发明轮子,因为没有提供开箱即用的支持。
哪个方向最好?
这是一个非常开放的问题。您应该查看您的要求和其他限制,例如预算。例如,运行 生产级 Service Fabric 集群至少需要 5 个节点。与 运行 webjob 相比,它需要一个具有一定横向扩展(用于 HA)的托管计划。与使用消耗计划的 运行 Azure Functions 相比,只有在免费授予 100 万个请求和每月 400,000 GB-s 的资源消耗用完后,您才需要为每次执行付费。
我建议从简单的 Azure Functions 开始。创建您的原型,看看这是否是您需要的。你 运行 是否有问题。借助 Functions,Azure 服务总线的使用可能会受到一定程度的限制。例如,您不能将消息设为死信,因为您要么必须 return 成功完成它,要么抛出异常重试。您不能延迟消息,而是需要发送另一条消息。您也不能通过使用 Azure 服务总线的发送功能来使用事务选项。
如果您发现自己需要这些功能,WebJob 将是我的下一个候选者。你将不得不看看你将如何利用它。您很可能需要创建自己的接收泵并处理免费提供的功能,但您将拥有创建多个连接所需的灵活性、按照您需要的方式配置客户端等。
只有在那之后,如果您发现除了服务总线之外您还有数据分区、HA、DR 或部署和扩展多个服务等要求,我会对 Service Fabric 更加认真。
这 3 种技术各有其用武之地。
我正在考虑三种构建服务总线主题侦听器的方法:
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 函数,因为它具有直接的开箱即用服务总线集成。但是,由于它是相当新的,我不确定它是否是一个安全的选择。
根据我的阅读,服务结构提供了最大的弹性和支持。
选择 Web 作业是最安全的,因为一切都很容易配置,但恐怕我会重新发明轮子,因为没有提供开箱即用的支持。
哪个方向最好?
这是一个非常开放的问题。您应该查看您的要求和其他限制,例如预算。例如,运行 生产级 Service Fabric 集群至少需要 5 个节点。与 运行 webjob 相比,它需要一个具有一定横向扩展(用于 HA)的托管计划。与使用消耗计划的 运行 Azure Functions 相比,只有在免费授予 100 万个请求和每月 400,000 GB-s 的资源消耗用完后,您才需要为每次执行付费。
我建议从简单的 Azure Functions 开始。创建您的原型,看看这是否是您需要的。你 运行 是否有问题。借助 Functions,Azure 服务总线的使用可能会受到一定程度的限制。例如,您不能将消息设为死信,因为您要么必须 return 成功完成它,要么抛出异常重试。您不能延迟消息,而是需要发送另一条消息。您也不能通过使用 Azure 服务总线的发送功能来使用事务选项。
如果您发现自己需要这些功能,WebJob 将是我的下一个候选者。你将不得不看看你将如何利用它。您很可能需要创建自己的接收泵并处理免费提供的功能,但您将拥有创建多个连接所需的灵活性、按照您需要的方式配置客户端等。
只有在那之后,如果您发现除了服务总线之外您还有数据分区、HA、DR 或部署和扩展多个服务等要求,我会对 Service Fabric 更加认真。
这 3 种技术各有其用武之地。