我已在我的应用程序中创建了Service Fabric以连接第三方服务。我们有相同功能的多个提供商。在这里,我创建了一个面料应用程序&为每个提供商(第三方服务)创建了多个无状态服务。它工作正常。现在我需要为所有功能添加一些其他提供程序。
在一个应用程序下创建更多无状态服务时是否会出现性能问题?
功能1:
F1_provider 1,F1_provider 2,F1_Provider 3。
功能2:
F2_provider 1,F2_provider 2,F2_provider 3。
是否需要为功能2&创建单独的结构应用程序为F2_Providers创建多个无状态服务?
我们可以在相同的Fabric应用程序下创建Multiple provier吗?
答案 0 :(得分:1)
你的问题并不清楚真正的问题是什么。如果你给出真实的例子,可以更容易地给你更好的答案。
关于主要问题:
应用程序只是服务的逻辑隔离,因此,如果一个应用程序具有一个服务类型的100个实例,或者每个应用程序具有一个实例,则没有太大区别,最后,运行的实例数将是同样的(除非你决定使用共享流程方法,这看起来不是你的情况),最大的区别在于你将如何管理它们。
如果关注的是管理,多个应用程序可能会给你更多的灵活性,但是更难维护。
例如:
假设您有一个具有两种服务类型的应用程序(ServiceAlphaType,ServiceBetaType),每个应用程序都有多个命名实例(美国,英国),如:
ApplicationName
- ServiceAlphaType (Type)
- ServiceAlphaUS (NamedService)
- ServiceAlphaUK (NamedService)
- ServiceBetaType (Type)
- ServiceBetaUS (NamedService)
- ServiceBetaUK (NamedService)
如果要将服务类型 ServiceBetaType 升级到较新版本,使用差异打包,则将 ServiceBetaType (ServiceBetaUS, ServiceBetaUK)将被升级,如果它们属于同一个Application实例,则无法避免。
如果您只想升级其中的一部分,则必须在单独的应用程序中创建它们,升级应用程序将仅影响在其下运行的那些服务:
ApplicationUS
- ServiceAlphaType (Type)
- ServiceAlphaUS (NamedService)
- ServiceBetaType (Type)
- ServiceBetaUS (NamedService)
ApplicationUK
- ServiceAlphaType (Type)
- ServiceAlphaUK (NamedService)
- ServiceBetaType (Type)
- ServiceBetaUK (NamedService)
注意:要仅使用已更改的服务升级应用程序,您必须使用服务结构的differential packaging功能打包应用程序。