在 Service Fabric 中对应用程序建模

本文概述 Azure Service Fabric 应用程序模型以及如何通过清单文件定义应用程序和服务。

了解应用程序模型

应用程序是由执行一个或多个特定功能的成分服务组成的集合。 服务执行完整且独立的功能,可以独立于其他服务启动和运行。 服务由代码、配置和数据组成。 对于每个服务,代码由可执行二进制文件组成,配置由可在运行时加载的服务设置组成,数据则由可供该服务使用的任意静态数据组成。 可对此层次应用程序模型中的每个组件进行独立的版本控制和升级。

The Service Fabric application model

应用程序类型是一个应用程序分类,包含大量服务类型。 服务类型是一个服务分类。 该分类可以具有不同的设置和配置,但核心功能保持相同。 服务实例是相同服务类型的不同服务配置变体。

通过 XML 文件(应用程序清单和服务清单)描述应用程序和服务的类(或“类型”)。 清单描述应用程序和服务,可对照这样的模板从群集的映像存储区中对应用程序进行实例化。 清单将在应用程序和服务清单中详细介绍。 ServiceManifest.xml 和 ApplicationManifest.xml 文件的架构定义随 Service Fabric SDK 和工具一起安装到 C:\Program Files\Microsoft SDKs\Service Fabric\schemas\ServiceFabricServiceModel.xsd。 XML 架构记录在 ServiceFabricServiceModel.xsd 架构文档中。

即使由同一 Service Fabric 节点托管时,不同应用程序实例的代码也将作为单独的进程运行。 此外,可以独立管理每个应用程序实例的生命周期(如升级)。 下图显示了应用程序类型如何由服务类型组成,而服务类型又如何由代码、配置和数据包组成。 为了简化示意图,这里只显示了 ServiceType4 的代码/配置/数据包,不过每个服务类型包括其中的部分或全部包类型。

Service Fabric application types and service types

群集中可以有一个或多个服务类型实例处于活动状态。 例如,有状态服务实例或副本通过复制位于群集中不同节点上的副本之间的状态实现高可靠性。 复制本质上是提供冗余,使服务即使在群集中的一个节点失败时也可用。 分区服务进一步跨群集中的节点划分其状态(和该状态的访问模式)。

下图显示应用程序和服务实例、分区与副本之间的关系。

Partitions and replicas within a service

提示

可以使用 http://<yourclusteraddress>:19080/Explorer 上提供的 Service Fabric Explorer 工具查看群集中应用程序的布局。 有关详细信息,请参阅使用 Service Fabric Explorer 可视化群集

后续步骤