Service Fabric - 部署结构

       在部署环节中,我们创建了ApplicationManifest.xml用来描述应用,ServiceManifest.xml用来描述服务,这些究竟指的什么,下面会详细的介绍。

部署结构

       每个 Service Fabric 应用都是需要固定的部署结构,其中的资源结构如下图所示:

       对应的部署目录如下:

install.sh <== 安装脚本,能够将应用安装到service fabric集群
uninstall.sh <==  卸载脚本,从service fabric中将应用进行卸载
ApplicationProject
        |— ApplicationManifest.xml <== 应用程序类型是分配给服务类型集合的名称/版本,声明依赖或者暴露的服务
        |— XxxServicePkg <== 服务包目录
                |— ServiceManifest.xml <== 服务类型是分配给服务的代码包、数据包、配置包的名称/版本,在同级目录中会有代码与配置
                |— code/ <== 代码所在的位置,包括运行的脚本
                |— config/ <== 配置所在位置
                |- data/ <== 数据

       下面看一下ApplicationManifest.xml中声明的内容,我们以ciao-springboot-web项目为例:

?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest  ApplicationTypeName="CiaoSpringbootWebType" ApplicationTypeVersion="1.0.0"
                      xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

   <ServiceManifestImport>
      <ServiceManifestRef ServiceManifestName="WebRuntimeServicePkg" ServiceManifestVersion="1.0.0" />
   </ServiceManifestImport>

   <DefaultServices>
      <Service Name="WebRuntimeService">
         <StatelessService ServiceTypeName="WebRuntimeServiceType" InstanceCount="1">
            <SingletonPartition />
         </StatelessService>
      </Service>
   </DefaultServices>

</ApplicationManifest>

       可以看到文件定义了应用类型CiaoSpringbootWebType,而这个应用会具备一个服务WebRuntimeServicePkg,这里只是定义了一个资源位置,和服务相关的内容需要到WebRuntimeServicePkg这个目录中去找寻, Service Fabric 会完成这个过程。

       WebRuntimeService定义了服务类型名,以及服务实例数,目前是1个,接下来是服务的定义,ServiceManifest.xml中定义如下:

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="WebRuntimeServicePkg" Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
   <ServiceTypes>
      <StatelessServiceType ServiceTypeName="WebRuntimeServiceType" UseImplicitHost="true">
   </StatelessServiceType>
   </ServiceTypes>

   <CodePackage Name="code" Version="1.0.0">
      <EntryPoint>
         <ExeHost>
            <Program>entryPoint.sh</Program>
            <Arguments></Arguments>
            <WorkingFolder>CodePackage</WorkingFolder>
         </ExeHost>
      </EntryPoint>
   </CodePackage>
 </ServiceManifest>

       上述配置描述了服务的代码在code目录下,而入口是entryPoint.shService Fabric 会运行该脚本启动服务,一个应用中的多个服务在部署上物理位置是相互独立的。

部署运行时

       将应用程序包复制到映像存储后,可以通过指定应用程序包的应用程序类型(使用其名称/版本)在群集内创建应用程序的实例。 将为每个应用程序类型实例分配一个如下所示的 URI 名称:fabric:/MyNamedApp。 应用程序包下的内容会上传到 Service Fabric 集群中,并命名成为fabric:/appname,这个是一组服务概念上的集合,上述例子中应用就是:fabric:/CiaoSpringbootWeb

       创建命名应用程序后,可以通过指定服务类型(使用其名称/版本),在群集中创建应用程序服务类型(命名服务)之一的实例。 需为每个服务类型实例分配一个 URI 名称,该名称归并到实例的命名应用程序的 URI 之下。例如,如果在命名应用程序“MyNamedApp”中创建命名服务“MyDatabase”,则 URI 将类似于:fabric:/MyNamedApp/MyDatabase,上述例子中服务就是:fabric:/CiaoSpringbootWeb/WebRuntimeService

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WeiPeng2K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值