Azure Service Fabric - 为多个第 3 方服务创建应用程序

Azure Service Fabric - Application creation for multiple 3rd party services

我已经在我的应用程序中创建了用于连接第 3 方服务的服务结构。我们有同一功能的多个提供商。在这里,我创建了一个结构应用程序并为每个提供商(第 3 方服务)创建了多个无状态服务,并且工作正常。现在我需要为所有功能添加一些其他提供商。

在一个应用下创建多个无状态服务会不会出现性能问题?

功能 1:

F1_provider1,F1_provider2,F1_Provider3.

特征 2:

F2_provider1,F2_provider2,F2_provider3.

  1. 是否需要为功能 2 创建单独的结构应用程序并为 F2_Providers 创建多个无状态服务?

  2. 我们可以在同一个 fabric Application 下创建 Multiple provier 吗?

你的问题并不清楚真正的问题是什么。如果你给出真实的例子,可能会更容易给你更好的答案。

关于主要问题:

应用程序只是您的服务的逻辑隔离,因此一个应用程序具有一种服务类型的 100 个实例或具有 100 个应用程序每个实例一个实例并没有太大区别,最后,实例数 运行 将是相同的(除非您决定采用共享流程方法,否则看起来不是您的情况),最大的区别在于您将如何管理它们。

如果关注的是管理,多个应用程序可能会给您带来更大的灵活性,但会更难维护。

例如:

假设您有一个具有两种服务类型(ServiceAlphaType、ServiceBetaType)的应用程序,并且每个应用程序都有多个命名实例(美国、英国),例如:

ApplicationName
- ServiceAlphaType (Type)
  - ServiceAlphaUS (NamedService)
  - ServiceAlphaUK (NamedService)
- ServiceBetaType (Type)
  - ServiceBetaUS (NamedService)
  - ServiceBetaUK (NamedService)

如果您想将服务类型 ServiceBetaType 升级到较新版本,使用差异化包装, 那么 [=31] 的两个命名实例=]ServiceBetaType (ServiceBetaUS,ServiceBetaUK) 将升级,如果它们是同一应用程序实例的一部分,则无法避免。

如果您只想升级其中的一部分,则必须在单独的应用程序中创建它们,升级应用程序只会影响其下面的那些服务运行:

ApplicationUS
- ServiceAlphaType (Type)
  - ServiceAlphaUS (NamedService)
- ServiceBetaType (Type)
  - ServiceBetaUS (NamedService)

ApplicationUK
- ServiceAlphaType (Type)
  - ServiceAlphaUK (NamedService)
- ServiceBetaType (Type)
  - ServiceBetaUK (NamedService)

注意:要升级仅包含已更改服务的应用程序,您必须使用 service fabric 的 differential packaging 功能打包应用程序。