在服务结构中部署多个应用程序的方案是什么?

时间:2018-04-02 23:36:33

标签: azure azure-service-fabric

根据this页面,可以将服务结构中的节点类型视为与云服务中的角色类似。

如果是这种情况,那么我们如何考虑将多个应用程序部署到同一个服务结构集群。例如。假设有2个应用程序:

  • 第一个只需要一个Web角色,
  • 秒,需要1个Web角色和2个辅助角色。

问题:

  1. 然后我们创建具有3种节点类型(web-1,worker-1,worker-2)的服务结构集群,然后让两个应用程序的Web角色共享web-1节点类型?

  2. 如果两个应用的性能/可扩展性要求非常不同,例如, App1 Web角色需要20个VM,而App2 Web角色只需要2个? 我们仍然需要将nodetype1的实例数改为20,对吧?

  3. 服务架构如何将一个应用程序与另一个应用程序隔离开来? 例如。 App1开始获得大量流量,因此最终占用大部分CPU /内存,不会影响App2吗?

2 个答案:

答案 0 :(得分:1)

  1. 您将创建2种节点类型:WebWorker。 Web节点类型上的服务可以直接从Internet访问,而Worker节点类型中的服务则不会。两个应用程序共享节点,因此可以最佳地使用available resources

  2. 根据应用程序的特性,您需要20到22个节点。如果一个内存很重,而另一个CPU很重,你可能会使用20。如果它们都是CPU重,那么你可能需要22个节点。 所以不是22个节点类型,而是22个节点(VM)。

  3. SF将执行resource balancing以跨可用节点划分工作负载。通过使用Containersresource governance,您可以限制一项服务可能对其他服务产生的影响。

答案 1 :(得分:0)

没有正确的答案,因为您的所有问题都取决于您的应用程序如何消耗资源。

有一件事你可以肯定,你需要一个NodeType公共可用来接收外部调用并将这些调用内部重定向到工作节点,对于工作者来说,它将依赖于它们如何消耗服务器资源,一个可能是CPU密集型的,其他磁盘或网络。

  1. 如果为每种服务类型创建节点类型,则可能处于空闲状态 或低使用过的机器通常只是为了支持这些服务 需要。如果负载快速增加/减少,您可能会有 延迟扩大\降低以适应需求。但这种做法会让他们彼此隔离。

  2. 如果将它们部署在同一节点上,则可能会争夺资源 像内存,磁盘和CPU,但在这种情况下,他们将使用尽可能多 它们可用,直到达到节点限制,充分利用可用资源。如果这种并发性迫使它们经常移动并中断它们的处理,这将是一个问题,当它们必须运行长时间运行的操作时,这是不可接受的。