Azure Service Fabric 使可扩展且可靠的微服务应用程序的部署、管理和打包变得非常简单和高效。 它简化了云应用程序的开发和管理,以及可靠地扩展和编排服务。 Azure Service Fabric 的目的是为开发人员提供一个非常丰富的平台,以解决与开发基于云的分布式应用程序相关的许多常见问题。
NCache 在 Azure Service Fabric 群集中提供其部署以增强性能和可靠性。 NCache 是一种内存分布式缓存解决方案,可通过缓存数据并靠近应用程序来提高应用程序的性能和可扩展性。
NCache 更多信息 NCache OpenShift 部署 NCache AKS 文档
NCache Azure Service Fabric 中的部署体系结构
让我们来概述一下整体的部署架构 NCache 在 Azure 服务结构中。 基础结构由 Service Fabric 群集资源及其所有支持 Azure 资源(包括 Azure 负载均衡器和虚拟机规模集)组成。 Service Fabric 集群可能有多个正在运行的应用程序,这些应用程序可以由单独的服务组成,因为它在基于微服务的体系结构中很常见,并且这些单独的服务可以用不同的语言编写。 Service Fabric 处理应用程序及其各个服务的可伸缩性和高可用性。
在此类企业应用程序中,分布式缓存解决方案如 NCache 是促进高性能的一个组成部分。 NCache 也可以作为容器服务部署在 Service Fabric 应用程序中。 在这种情况下, NCache 服务器在虚拟机技能集的多个节点上的容器内运行,并相互通信以形成集群缓存。
缓存发现服务获取有关 IP 地址的实时信息 NCache 服务器并将该信息提供给客户端。 使用此信息,客户端可以在 NCache 缓存集群。 将所有这些放在一起,下图显示了部署 NCache 在 Service Fabric 群集中:
让我们逐步了解部署的详细信息 NCache 更好地理解它。
NCache 更多信息 部署 NCache 在 Service Fabric 群集中
步骤 1:创建 Service Fabric 群集
第一步是创建一个服务结构集群,以便部署 NCache. 使用密钥保管库资源创建资源组。 密钥保管库包含将与 Service Fabric 群集一起使用的证书。 首先,您可以从给定的 5 节点 Service Fabric 群集的 ARM 模板开始 此处 然后进行以下更改:
- 在 JSON 文件,更改默认值 vmImageSku 中的参数 参数 部分来自 2016-数据中心 至 2016-带容器的数据中心. 这将设置预先安装了 Docker 功能的 VMSS 节点。
- 更新 ARM 模板以允许 开放组网模式.
- 在您要公开的负载均衡器端口中,添加一个值为 8251 的端口值,该端口值是 NCache Web 管理器将运行。 将此端口的分配模式更改为 源IP. 这将允许 NCache 在创建缓存并向其添加节点的过程中,通过粘性会话访问 Web 管理器以在服务器和客户端之间提供一致的状态。
完成此操作后,您可以部署 ARM 模板,其资源和配置将由 Azure 资源管理器预配。 一旦基础设施到位并且 ARM 模板中指定的所有配置都已验证,请转到下一步。
步骤2:建立 NCache 集群服务
NCache 集群服务是运行的主要服务,代表 NCache 在服务结构 VMSS 上的容器内运行的服务器。 这 NCache 服务器 Windows 容器图像可用于 码头工人. 此服务使用的配置模式是 可选 配置模式及其使用细节将在后面的博客中解释。 此服务的目的是公开通信所需的以下端口:
- 管理端口:端口号 8250,缓存服务器在该端口上侦听缓存创建等管理操作。
- 客户端端口: 用于执行所有 CRUD 操作的端口号 9800。
在 Service Fabric 中, 开放组网模式 允许多个容器通过从它们运行的虚拟机的辅助 IP 地址池中为它们分配单独的 IP 地址来共享同一个端口。 如果是 NCache 服务,这将有额外的好处,允许 NCache 容器作为集群缓存的一部分时跨主机边界进行通信。 这在默认情况下是不可能的 NAT 模式。
下面给出的是示例 NCache 集群服务清单文件:
1 2 3 4 5 6 7 |
<ContainerHost> <ImageName>alachisoft/ncache</ImageName> </ContainerHost> <Endpoints> <Endpoint Name="cache-management" Protocol="tcp" UriScheme="tcp" Port="8250" CodePackageRef="Code" /> <Endpoint Name="cache-client" Protocol="tcp" UriScheme="tcp" Port="9800" CodePackageRef="Code" /> </Endpoints> |
步骤3:建立 NCache 管理服务
NCache Management Service 也是一个容器服务,使用相同的 Docker 镜像 NCache 集群服务。 该服务的目的是通过访问 NCache 网络管理员. 分开的原因 NCache 从管理服务 NCache 集群服务是在开放配置模式下,不允许主机到端口的映射。 NCache 需要通过提供主机端口来访问 Web 管理器,为此,另一个服务称为 NCache 管理服务是用 NAT 模式。 下面给出的是示例服务清单文件 NCache 管理服务。
1 2 3 4 5 6 |
<ContainerHost> <ImageName>alachisoft/ncache</ImageName> </ContainerHost> <Endpoints> <Endpoint Name="web-management" Protocol="http" UriScheme="http" Port="8251" Type="Input" CodePackageRef="Code" /> </Endpoints> |
步骤4:建立 NCache 发现服务
NCache 发现服务是一个无状态的可靠 ASP.NET Core 与 Service Fabric 命名服务协商并获取由服务结构注册的终结点的 Web API NCache 集群服务。 然后通过访问端点检索到的信息作为 HTTP 响应提供给客户端。
然后客户端应用程序可以在 NCache 通过使用获取的 IP 地址信息创建缓存连接来实现集群缓存。 服务清单 NCache 发现服务如下图所示:
1 2 3 4 5 6 7 |
<EnvironmentVariables> <EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value="" /> </EnvironmentVariables> <Endpoints> <!-- This endpoint is used by the communication listener to obtain the port on which to listen. --> <Endpoint Protocol="http" Name="ServiceEndpoint" UriScheme="http" Port="55100" Type="Input" /> </Endpoints> |
第四步:创建缓存集群
这部分是实际创建缓存的地方。 首先,请确保 NCache 发现服务已启动并正在运行。 从发现服务访问由集群 DNS 组成的 URI 和缓存发现服务正在侦听的端口。 打开后跟 DNS 的 URI 时,会显示每个端点的 IP 地址,这些地址由 NCache 服务。
确保服务已启动并运行后,您现在可以访问 NCache 网页管理器创建 NCache 集群缓存。 访问 NCache Web 管理器,使用 DNS 后跟端口号 8251 访问它。这会将您带到主窗口 NCache 网络管理器。 按照创建缓存集群部分中的步骤创建缓存集群 文件.
第 6 步:创建客户端应用程序服务
不同的 NCache 客户端服务发送 HTTP 请求到 NCache 发现服务,它为客户端提供容器的 IP 地址 NCache 正在响应中运行。 然后,客户端可以使用 IP 地址创建缓存连接,并通过这些连接与客户端进行通信。 NCache 集群缓存。
如果您需要监控 客户端 NCache 性能计数器 和/或需要外部处理 客户端缓存 对于您的客户端服务,客户端应用程序需要部署为容器服务,其源图像包括 NCache 以缓存客户端模式安装. 在这种情况下,客户端服务也使用开放组网模式。
下面给出的是客户端应用程序服务的示例服务清单文件 NCache 客户端安装:
1 2 3 4 5 6 |
<EntryPoint><ContainerHost><ImageName>ncache/apps:sfclient</ImageName></ContainerHost></EntryPoint> <EnvironmentVariables> <EnvironmentVariable Name="ASPNETCORE_ENVIRONMENT" Value="Development"/> <EnvironmentVariable Name="Cache_Name" Value="democache"/> <EnvironmentVariable Name="Cache_DiscoveryService_URL" Value="<Cache Discovery Service URL>"/> <!-- Other environmental variables --> |
NCache 更多信息 NCache OpenShift 部署 NCache Docker容器
第 7 步:运行客户端应用程序
缓存启动并运行后,您可以开始从客户端执行 CRUD 操作。 客户端应用程序最初会从获取客户端的 IP 地址开始。 NCache 服务器容器来自 NCache Discovery Service 并与缓存建立连接。 一旦建立连接,缓存管理和 CRUD 操作就可以继续进行。
您可以使用验证客户端连接 NCache 网页管理器和 NCache Web Monitor 在下一步中解释。
第 8 步:监控 NCache 簇
NCache 网络管理员 有一个嵌入式 NCache 网络监视器 帮助您监控缓存集群的工具。 监控缓存集群可为您提供有关缓存集群运行状况、缓存活动、执行的操作数量等的实时信息。 监控缓存集群可帮助您针对内存开销等问题采取适当的措施。
按照文档中的步骤监控您的缓存集群。 它向您显示各种仪表板,例如报告仪表板或图形仪表板以及您的客户端和服务器计数器。
第 9 步:缩放 NCache 簇
NCache 本质上是非常可扩展的,允许您 将服务器添加到缓存集群 在运行时。 NCache Web Manager 允许您在缓存集群中添加服务器。 只需缩放 NCache 无论您需要多少实例,都可以为集群服务。 一旦新 NCache 服务器容器正在运行,您可以将它们添加到缓存集群,而无需停止缓存集群。
然后,您可以监控缓存集群以查看添加的服务器节点上的活动。
结论
将整篇文章放在一起,我们已经介绍了 Azure Service Fabric 的部署 NCache. NCache 是一个非常可扩展的缓存解决方案,可确保高性能和极快的事务。 这些好处可以通过以下几个简单的步骤和部署来实现 NCache 在使用 Azure Service Fabric 的容器化环境中。