【问题标题】:Bridging Azure Web Apps and Service Fabric桥接 Azure Web 应用程序和 Service Fabric
【发布时间】:2016-09-11 14:50:47
【问题描述】:

我目前正在运行一些 Azure 网站/应用程序。我一直在研究 Service Fabric,以减轻一些长期工作的负担。类似于 Worker 角色中会发生的情况。我知道您可以在 Service Fabric 中托管 Web 应用程序,但我真的不希望现在将我们的网站/应用程序移入其中。

例如,将我当前的 Web 应用程序连接到 Reliable Actor 的最佳方式是什么?浏览完文档和视频后,我感觉只有在已经在 Fabric 中托管时才能获得 Actor 代理。除此之外,我可以想象我总是可以设置某种队列,但如果有其他选择,我愿意听听。

【问题讨论】:

    标签: azure azure-web-app-service azure-service-fabric


    【解决方案1】:

    你是对的,你不能直接访问演员。您可以在 Service Fabric 应用程序中拥有一个 Web API(一种无状态服务),它将公开与您的网站/应用程序交互所需的端点。

    查看文档中的这篇文章,了解有关如何执行此操作的更多详细信息https://azure.microsoft.com/en-gb/documentation/articles/service-fabric-reliable-services-communication-webapi/

    【讨论】:

      【解决方案2】:

      我建议使用 Azure Service Bus /Storage Queue 之类的队列,而不是 web-api,因为这些作业需要长时间运行。直接从 web api 调用参与者会导致超时。所以你最终还是需要某种队列。 在您的演员中使用reminders 定期查看队列中是否有工作。

      【讨论】:

      • 把这个作为答案,因为你对队列是正确的。
      • 也许我的回答描述性不够,但我并不是建议您的 API 调用等待演员完成工作。 API 调用可以将项目添加到有状态服务中的可靠队列以完成工作并立即返回,或者向参与者添加提醒以便稍后完成工作。使用服务总线或存储队列也可以,但恕我直言,没有必要。
      【解决方案3】:

      我正在为此寻找解决方案,但仍有一段路要走。 https://github.com/s-innovations/MessageProcessor.ServiceFabric

      但也许它背后的一些基本想法是可重用的,而且我也来自工人角色并迁移到服务结构。

      问题在于工作负载非常不同,需要不同类型的机器硬件,其中一个目标是不让昂贵的机器在不做任何事情时运行。

      该解决方案是一个服务架构应用程序,可以部署到在 5 个额外小节点上运行的集群(成本略低于 A1 虚拟机)。

      它将监控一组队列(基于配置),每当其中有消息时,它会向集群部署一个服务(也基于配置),该服务可以拉取队列中的消息。当它空闲一段时间后,它会再次删除该服务。

      与 VM Scale Sets 一起,它将根据需求创建新的 vm 大小,并按上述说明再次关闭它们。

      一切都是基于队列/主题的,从 azure 网站应用程序中,您只需将消息发布到服务总线主题/队列即可对工作负载进行排队。

      这是帮助创建消息句柄的项目。 https://github.com/s-innovations/S-Innovations.Azure.MessageProcessor

      如果您觉得它有趣,请投票,我会看看如果我可以写更多的文档。

      【讨论】:

        猜你喜欢
        • 2015-12-24
        • 1970-01-01
        • 2019-02-15
        • 1970-01-01
        • 2016-09-30
        • 1970-01-01
        • 2019-05-10
        • 2019-02-14
        • 2019-01-15
        相关资源
        最近更新 更多