Azure Service Fabric 部署 NCache

Microsoft Service Fabric 是一个应用程序平台,可简化基于微服务的应用程序的构建和部署,为组织提供可靠、可扩展和敏捷的应用程序,无论它们是在 Azure、本地还是在任何其他云平台上运行。 Azure Service Fabric 提供运行状况监控功能并提供各种内置编程模型来简化基于云的应用程序的开发。

NCache 是一种内存分布式缓存解决方案,它为您的 .NET 和 Java 应用程序提供了一种极具扩展性的方法。 NCache 还提供对Service Fabric、Kubernetes等各种云平台的支持 Azure, 亚马逊EKS红帽OpenShift。它提高了云应用程序在峰值事务负载下的性能和可扩展性。下图展示了部署情况 NCache 在 Azure 服务结构中:

NCache 可以通过以下方式与 Azure Service Fabric 一起部署:

部署 NCache 在 Service Fabric 群集内

为了部署 NCache 在您的 Service Fabric 群集中,以下是需要在云应用程序中部署的主要组件:

NCache 发现服务

NCache Discovery Service 是一种无状态的可靠 Web API,可获取有关服务器 IP 地址的实时信息 NCache 服务器提供信息给 NCache 客户。 有了这些信息 NCache 为客户端创建缓存句柄,可以帮助客户端在集群缓存上执行操作。 这 NCache 发现服务与 Service Fabric 命名服务协商以获取其所在容器的 IP 地址 NCache 服务器正在运行。

<ServiceTypes>
    <StatelessServiceType ServiceTypeName="NCacheDiscoveryType" />
  </ServiceTypes>
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>NCacheDiscovery.exe</Program>
        <WorkingFolder>CodePackage</WorkingFolder>
      </ExeHost>
    </EntryPoint>
   ...
  </CodePackage>
  <ConfigPackage Name="Config" Version="1.0.0" />
   ...
</ServiceManifest>

NCache 集群服务

该服务是使用Docker镜像的容器服务 NCache. 该服务允许 NCache 运行在容器内的服务器跨主机相互通信,从而形成缓存集群。 可选 配置模式并公开通信所需的端口。

<ServiceTypes>
    <StatelessServiceType ServiceTypeName="NCacheServiceType" UseImplicitHost="true" />
. . .
      <ContainerHost>
        <ImageName>alachisoft/ncache</ImageName>
      </ContainerHost>
. . .
  <Resources>
    <Endpoints>
      <Endpoint Name="cache-management" Protocol="tcp" UriScheme="tcp" Port="8250" CodePackageRef="Code" />
    </Endpoints>
  </Resources>

NCache 管理服务

该服务用于公开 NCache 用于在缓存中执行管理和监控操作的 Web 管理器。 该服务使用与 NCache 集群服务使用。 分开的原因 NCache 从管理服务 NCache 集群服务是在开放配置模式下,不允许主机到端口的映射。 NCache 需要通过提供主机端口来访问 Web 管理器,为此另一个服务称为 NCache 管理服务是用 NAT 模式。

<ServiceTypes>
    <StatelessServiceType ServiceTypeName="NCacheWebManagerType" UseImplicitHost="true" />
  </ServiceTypes>
. . . 
      <ContainerHost>
        <ImageName>alachisoft/ncache</ImageName>
      </ContainerHost>
. . .
  <Resources>
    <Endpoints>
      <Endpoint Name="web-management" Protocol="http" UriScheme="http" Port="8251" Type="Input" CodePackageRef="Code" />
    </Endpoints>
  </Resources>

客户端应用服务

该服务允许多个节点上的容器相互通信。 该服务用于获取客户端计数器以监控缓存集群。

所有这些服务创造成功 NCache 部署在您的服务结构集群中,用于创建缓存集群,然后对其执行监控和管理操作。 该服务与 NCache 发现服务反过来为客户端提供容器的 IP 地址。

<ServiceManifest Name="ClientContainerPkg" . . .>
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="ClientContainerType" UseImplicitHost="true" />
  </ServiceTypes>
. . .
      <ContainerHost>
        <ImageName>ncache/apps:sfclient</ImageName>
      </ContainerHost>
. . .
</ServiceManifest>

部署 NCache 在 Service Fabric 群集之外

NCache 当在服务结构虚拟机规模集中未包含的虚拟机上时,服务结构服务也可以访问。 在这种情况下, NCache 不需要服务发现,可以为应用程序提供服务的 IP 地址 NCache 服务器。 访问 NCache 从 Service Fabric 群集外部,您可以在 client.ncconf 中或通过 CacheConnectionOptions API 提供正确的 IP 地址 NCache. 这允许微服务与 NCache 在 Service Fabric 群集之外。

接下来做什么?

联系我们

联系电话
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。