运用 NCache 在 Microsoft Azure 服务结构中

您好,欢迎来到另一个演示文稿 NCache. 今天,我们将讨论如何做 部署 NCache 进入 Service Fabric 环境. 有很多东西要讲,所以让我们开始吧。

NCache 部署

让我们从对我们正在努力实现的目标的总体概述开始。 因此,在这里,我们鸟瞰了部署到 Azure 的典型 Service Fabric 应用程序。

ncache-部署-天蓝色

我们有一个具有 Azure 负载平衡器的 Service Fabric 群集。 在 Service Fabric 应用程序中,我们有许多可以用不同语言编写的服务。 这些服务通常部署为容器化服务。 现在在企业应用程序中,分布式缓存对于实现高读取性能很重要,这就是 NCache 用武之地。

NCache 可以作为容器化服务部署在 Service Fabric 应用程序中。 NCache 服务器在虚拟机规模集的多个节点上的容器内运行,可以相互通信并形成集群缓存。 弥合两者之间的鸿沟 NCache 客户端和服务器,我们有缓存发现服务,用于获取实时IP地址信息 NCache 服务器并将该信息提供给 NCache 客户。 有了这些信息, NCache 然后客户端可以创建缓存句柄,他们可以使用它开始对缓存管理和 CRUD 操作 NCache 集群缓存.

所以,以下是我们今天要进入一半的演示的主要参数。

演示环境详细信息

NCache 在 Windows 容器中运行的服务器将使用名为 'alachisoft/ncache:最新的'。 这包含 NCache Enterprise,一个 .NET framework 安装。 我们将从 2 开始 NCache 服务器,它们聚集在一起形成具有副本拓扑分区的集群缓存。 他们俩 NCache 我们拥有的客户端应用程序是用 .NET Core 和 Java,它们将在 NCache 服务器。

创建 Service Fabric 群集

因此,要开始我们要做的第一件事就是在 Azure 上创建一个 Service Fabric 基础结构。 我可以来到我的浏览器窗口,在那里我已经打开了我的 Azure 门户。

天蓝色门户

我创建了一个名为 ' 的资源组NCacheServiceFabric”,而这个目前只包含一个“密钥库”资源。 此密钥保管库资源包含将与 Service Fabric 群集一起使用的证书。 来到 Visual Studio 2019,我打开了一个 ARM 模板并引入了设置,以允许 Service Fabric 开放配置模式。

视觉工作室

我们将更多地讨论 Service Fabric 开放配置模式以及我们在部署基础结构后使用它的原因。 所以,要开始部署,我可以来到“解决方案资源管理器”,在我的 Azure 资源组项目上,我可以右键单击,开始部署,我已经列出了资源组。

视觉工作室2

这将打开一个部署窗口。 我可以单击“部署”按钮,部署将开始。

部署按钮

这需要一些时间,所以,我将在这里暂停视频。 我们的模板已成功部署,为了确认这一点,我们可以返回我们的 Azure 门户。 如果我刷新页面,您会看到更改,我们会这样做。 因此,现在我们的 Service Fabric 集群和所有相关的依赖资源都已成功创建。 首先,我要谈的第一件事是我之前提到的开放式配置模式。

本文主要介绍了开放式配置模式以及使用它的原因。 出于我们的目的,开放式配置模式允许 NCache 在容器中运行的服务器实际上能够跨多个主机进行通信并聚集在一起形成集群缓存并了解这是如何完成的,我们可以来到 Azure 门户,我首先要看的是虚拟网络。

虚拟网络

好的,现在我们有来自虚拟机规模集的多个节点,但如果仔细观察,每个节点都有多个分配给它们的 IP 地址。 第一个 IP 地址是主机的主地址。 但是,附加到节点的其他 IP 地址形成辅助 IP 地址池,在 Service Fabric 的开放配置模式下,这些 IP 地址将分配给容器,在容器上 NCache 服务器将运行。 使用从该辅助池分配的 IP 地址,多个主机中的容器可以彼此无缝通信,从而在 Service Fabric 上创建缓存群集。

我想在资源中查看的另一件事是负载均衡器,如果我来到“前端 IP 配置”,我真正感兴趣的规则是“规则 10”,这与端口 8251 有关,它将被使用 NCache 网络管理员,我们将在本演示文稿稍后讨论。 但需要注意的重要一点是,随着 NCache Web Manager,我们将使用粘性持久性,如此处显示的“会话持久性”字段所示,其值为“客户端 IP”。

nc-网络管理器

有了这个,如果有多个实例 NCache Web Manager 运行后,我们将能够在浏览器和终端服务之间拥有一致的用户体验。 现在我们已经查看了基础结构并成功部署了它,我们将进入 Service Fabric 应用程序的部署,为此,我们将回到 Visual Studio,我们有许多 ServiceManifest 文件,对应于应用程序的服务。 我们有 NCache 服务, NCache Web 管理器服务、发现服务以及客户端容器服务,它们将容纳我们的客户端应用程序。 部署应用程序后,我们将详细介绍这些服务中的每一个。 为此,我们将回到解决方案资源管理器,在这里,我们只需右键单击 Service Fabric 应用程序项目和名称,然后选择“发布”。

解决方案探索者

这将打开我们的部署窗口,您可以看到它已经选择了 Service Fabric 群集连接端点。 此时我们所要做的就是单击“发布”,该过程就会开始。

部署窗口

这需要一些时间,所以我要在这里暂停我的视频。 应用程序已成功部署,我们已准备好在“Service Fabric Explorer”窗口中。 如您所见,此处给出了集群 DNS。

服务结构浏览器

如果我去'DASHBOARD'看看,我有五个节点启动并运行1个应用程序和4个服务。 可以在左窗格中看到这 4 个服务。 我想看的第一个服务是 NCache 服务。 这代表了 NCache 将在容器内运行并将形成集群缓存的服务器。 然后我有 NCache Web Manager 服务,这代表了一个易于使用的 GUI,用于缓存集群的创建和监控。 然后我有 NCache Discovery Service,负责获取服务器的 IP 地址 NCache 服务器并将它们提供给客户端应用程序。 说到客户端应用程序,我们有客户端容器服务,它代表一个容器,其中包含两个不同的应用程序,一个写在 .NET Core 另一个是Java。 现在我将依次详细介绍这些服务中的每一项。

NCache 集群服务

我想看的第一个是 NCache 集群服务,为此我将回到 Visual Studio。 这是服务清单 NCache 集群服务,如您所见,它是一个容器服务,它使用图像'alachisoft/ncache“。

视觉工作室3

我在命名服务中注册了几个端点,它们如下所示: 我们有“缓存管理”端点,它公开端口 8250,缓存服务器将在该端口上侦听连接请求。 我们有“缓存客户端”端点,即暴露端口 9800。所有的 CRUD 操作 通过此端口执行。 除此之外,我们还有“bridge-management”和“bridge-client”端点。 对于本次演示,我们将只关注此处显示的前两个端点。

视觉工作室4

NCache 管理服务

我们看到的第二个服务是 NCache 管理服务,表示 Web 管理器 GUI。 回到 Visual Studio,如果我来到 ServiceManifest NCache Web Manager Service,我们看到它也是一个容器服务,和 NCache 服务和我们向命名服务注册的端点是“web-management”,它公开端口 8251。

视觉工作室5

NCache 发现服务

第三个服务当然是 NCache 发现服务 并且这里给出了 ServiceManifest。

nc-发现类型

NCache Discovery Service 是一种无状态、可靠的 ASP.NET Core 网络 API。 它与命名服务协商并获取由 NCache 这里提供的服务。 使用从命名服务接收到的端点,发现服务然后可以将该信息提供给 NCache 客户端。

客户应用服务

我们在应用程序中拥有的第四项服务是 客户端应用服务 为此,我们还打开了这些 ServiceManifest 和客户端应用程序, .NET Core 和 Java 被安置在同一个容器中。 其中的图像是'ncache/应用程序:sfclient'。

客户端

这里要注意的重要一点是,随着 NCache 服务和客户端服务,我们使用“开放配置”。 这 NCache 服务具有开放配置模式,允许运行在不同主机上的容器相互通信,从而形成缓存集群,而在客户端容器上,我们有一个 NCache Web Manager GUI 将使用客户端和安装来获取客户端计数器并能够从 GUI 监视客户端行为。

创建缓存集群

下一部分要做的是缓存集群的实际创建,为此让我们回到我们的 Service Fabric Explorer 窗口。 我要做的第一件事是确认我的服务发现工作正常。 为此,我将提供 URI,它由集群 DNS 和 Discovery Service 正在侦听的端口(即 55100)组成。

谷歌链接

如果我单击 Enter,我会看到每个 Endpoint 的 IP 地址和相关端口由 NCache 服务,已成功呈现。 如果仔细观察,IP 地址与虚拟网络为这些 Service Fabric 节点提供的 IP 地址相同,是辅助 IP 池的一部分。

IP地址

现在我们已经运行了服务发现,让我们开始吧 NCache 网络管理器。 同样,我们将提供集群 DNS,然后是它正在侦听的端口,即 8251,这将我们带到 Web 管理器 GUI 的主窗口。

网络管理器-gui

现在我将演示创建集群缓存是多么容易,为此我需要做的就是单击此处显示的“新建”按钮。

新按钮

我将从给出缓存的名称开始。

缓存名称

保持其他一切默认。 我将使用异步模式的副本拓扑分区。

异步

现在,我将提供构成集群缓存的这些服务器的 IP 地址。 所以,首先我要给出第一个 IP 和第二个 11。加上这两个,我们可以进入下一阶段。

ip地址2

保持其他一切默认,最后我们只需单击“完成”。

完

如主窗口所示,将创建缓存。

缓存创建

现在它已创建,是时候启动它了,为此我们可以单击缓存名称旁边的复选框,然后按“开始”按钮。

开始

现在缓存已经启动,我们现在可以查看一些内容。 我们可以做的第一件事是,在按下复选框的同时单击“监控”按钮来查看“监控”工具。

监控

这将打开另一个窗口,我们将能够看到构成监控工具的仪表板。 您可以在这里查看的第一件事是“集群健康”。 我们看到我们有 2 台服务器,具有活动分区和副本分区,它们是完全连接的,如绿色所示。

集群缓存

我们在这里也以图形格式显示了四个不同的分区。

服务器仪表板

我们现在可以查看几个计数器,包括“请求/秒”、“添加”、“获取”、“更新”、“删除”等。“计数”是 0,以及所有其他CRUD 操作计数器,因为还没有连接客户端进程,并且一旦连接,可以从“客户端进程”仪表板中看到客户端进程,该仪表板将显示“客户端 IP”、“进程 ID”以及它连接到的服务器. 这是“服务器仪表板”。 默认情况下可用的另一个仪表板是“客户端仪表板”,在这里我们可以查看来自客户端的不同计数器,并能够诊断和监控客户端行为。

客户仪表板

默认情况下出现的第三个仪表板是“报告仪表板”,它显示了服务器和客户端性能计数器的整体视图。

报告仪表板

运行客户端应用程序

要查看实际信息,我们现在将启动客户端应用程序。 所以,现在我们开始运行我们的客户端应用程序。 回到监视器窗口,我在客户端容器中打开了 PowerShell,并且我已经在“nettester”文件夹中,其中包含用于 .NET Core 应用程序。 我将运行一个批处理命令,该命令将缓存的名称(即“democache”)以及缓存发现服务的 URI 作为参数,如此处所示。

CMD

它由集群 DNS 以及缓存发现服务的端口组成。 现在,如果我按“Enter”,缓存将从客户端初始化,我们将在监视窗口中查看一些活动。 因此,事不宜迟,在这里我们看到客户端已成功获取 IP 地址,并且缓存句柄已初始化,这可以从集群健康监视器中确认,这表明客户端数量增加了一个。

监控窗口

我们还开始在与 CRUD 操作相关的不同仪表板上看到一些活动。 例如“添加”、“获取”、“更新”和“删除”。 以及使用“请求/秒”显示的整体活动。 我们看到随着客户端开始将项目放入缓存中,“计数”开始增加,我们在“客户端进程”中看到与客户端进程相关的新条目。 我们看到“客户端 IP”和“进程 ID”,我们看到客户端连接到两个服务器。 这是特定于副本拓扑的分区和分区的功能,称为集群感知。 来到“客户端仪表板”,我们在这里也看到了一些活动,我们可以看到 Web 管理器已经能够从客户端获取计数器。

客户端仪表板2

“报告仪表板”提供了一个整体视图。 我们看到性能计数器的每个节点实例都显示在服务器上,我们还看到“客户端报告”端的活动也来自客户端。

报告仪表板2

现在我们已经能够从 .NET Core 客户端,我们现在也将尝试从 Java 客户端进行连接。 所以,就像 .NET Core 应用程序,我们在这里有一个运行 Java 应用程序的批处理文件。 同样,它采用相同的参数,即缓存的名称以及缓存发现服务的 URI。

cmd2

现在我将运行程序并查看监视窗口中的变化。 所以,我按下“Enter”,应用程序已经启动并且它已经成功初始化,我们现在看到现在有 2 个客户端连接到这些服务器中的每一个。

监控窗口2

来到这里,我们来看看活动展示了什么。 首先,让我们看一下“伯爵”。 “计数”已经开始增加,因为客户端数量增加并且它们都将数据转储到缓存中。 请求也开始增加,它们的速率在“客户端进程”中,我们看到这里显示了 2 个客户端。 由于它们在同一个容器中运行,因此客户端 IP 相同,但进程 ID 不同,其中一个来自 .NET Core 另一个来自Java。 如果我来到主窗口另一个窗口,我想显示的是“统计”窗口。 这给出了正在发生的事情的另一种观点? 为此,我将单击省略号按钮并转到“显示统计信息”选项卡。

统计

我们也可以在此窗口中看到每个节点的性能计数器。 IP 地址显示在此处。 因此,我们已经成功地将客户连接到同一个 Service Fabric 集群中的服务器。

统计数据2

缩放 NCache 簇

在演示的最后一部分中,我们将演示在运行时将节点添加到集群缓存中,我们将看到添加对客户端应用程序的性能没有影响。 为此,让我们回到“Web Manager”中的主窗口。 要添加第三个节点,我们只需单击此处所示的“查看详细信息”链接。

集群缓存2

这将把我们带到另一个窗口,如果我们来到服务器节点部分,要添加第三个节点,我们所要做的就是单击此处显示的“添加”按钮。

添加按钮

给出第三个服务器的地址。 我会在这里做,我会给一个 17 并且节点已成功添加。

节点添加

现在已添加,我们必须启动它,为此我们只需单击 IP 地址旁边的复选框并单击“启动”,它已成功添加。

start2

回到主窗口,如果我们刷新这个按钮,我们现在看到有 3 个服务器,现在让我们看看监控窗口发生了什么。 和以前一样,我们单击此处的复选框并单击“监控”选项卡,现在我们看到“集群运行状况”仪表板中显示了 3 台服务器并且已完全连接。

服务器仪表板2

在“客户端进程”中,我们有 3 个不同的服务器提供来自 2 个客户端的请求。

客户进程

如果您查看“计数”部分,则“计数”已在 3 个节点之间进行负载平衡。

计数部分

这说明Replica Cluster的分区所采用的负载均衡策略是有效的。

这使我们的演示结束。 我们已经研究了如何部署 NCache 作为 Service Fabric 应用程序中的容器化服务。 如果您有任何关于 NCache 或您刚刚目睹的演示,请不要犹豫与我们联系 support@alachisoft.com。 谢谢。

联系我们

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