使用分布式缓存在 Microsoft Azure 中扩展 .NET 应用程序

录制的网络研讨会
通过罗恩侯赛因

了解 Microsoft Azure 中 .NET 应用程序的可扩展性瓶颈是什么,以及如何通过分布式缓存提高其可扩展性。

此网络研讨会涵盖:

  • 快速概览 .NET 应用程序中的性能瓶颈
  • 什么是分布式缓存,为什么它是 Azure 中的答案?
  • 在您的应用程序中,您可以在哪里使用分布式缓存?
  • 分布式缓存有哪些重要特性?
  • 一些在 Azure 中使用分布式缓存的示例

非常感谢您的加入。 让我快速向您介绍网络研讨会。 首先,我的名字是罗恩侯赛因。 我是技术专家之一 Alachisoft 我将成为您今天网络研讨会的主持人。 我将介绍在内存分布式缓存系统的帮助下扩展 Microsoft Azure 中的 .NET 应用程序所需的所有技术细节,我将使用 NCache 作为示例产品。 这是我们分布式缓存的主要产品。 我们是自豪的制造商 NCache 我将使用它作为示例产品。 此网络研讨会的更多内容将只听,这意味着我将进行大部分谈话,但您始终可以参与。 您可以根据需要提出尽可能多的问题。 在屏幕的右侧,有这个问题和答案选项卡。 如果您在问题选项卡上展开,您可以根据需要发布尽可能多的问题,正如我所说,我会密切关注这一点,我会回答你们将在此窗口中发布的所有问题。 因此,只是为了确认,如果您可以使用相同的问题和答案选项卡进行确认,请确认您是否可以看到我的屏幕以及是否可以正常听到我的声音。 我可以快速上手。 好的。 我已经可以看到一些问题正在发布。 所以,非常感谢您的确认。

让我们开始吧。 大家好,我的名字是 Ron Hussain,就像我说的,我是技术专家之一 Alachisoft 我将成为您今天网络研讨会的主持人。 我们今天选择的主题是借助内存分布式缓存系统在 Microsoft Azure 中扩展 .NET 应用程序。 在 Alachisoft 我们有各种各样的产品,最受欢迎的是 NCache,这是一个用于 .NET 和 Java 应用程序的内存分布式缓存系统。 NCache 将是主要产品,我将使用它作为示例,但我将坚持 Microsoft Azure 的基础知识。 如何使用 NCache (分布式缓存系统)在 Microsoft Azure 中,并在可扩展性、应用程序性能和整体系统可靠性方面利用它到您的体系结构中。 所以,既然你已经确认你可以看到我的屏幕,让我开始吧。

什么是可扩展性?

好的! 在我真正进入实际主题之前。 我将讨论一些基本概念,我将从什么是可扩展性开始? 可扩展性是增加应用程序事务负载的能力,同时您不会减慢应用程序的速度。 例如,此时,如果您正在处理 1,000 个请求,如果您的应用程序负载增长更多的用户登录,然后开始使用您的应用程序比负载更重,例如,它从每秒 1,000 个请求增长到 10,000 个请求。 现在您想要适应增加的负载,您想要处理增加的负载,同时您不想降低您的个人请求性能。 它不应该以这样一种方式发生:一个请求正在等待完成,而一个请求正在完成过程中,其他请求正在等待。 这些请求的处理时间应与它们之前所用的时间完全相同。 但与此同时,您需要可扩展性,即您可以处理越来越多的请求的能力,每秒加载 10,000 个请求或 20,000 个请求。 因此,在不损失性能的情况下,如果您能够增加应用程序的事务负载,这就是我们所说的可扩展性。 这就是我们今天要关注的内容。

什么是线性可扩展性?

有一个相关的术语称为无限可扩展性。 它是线性可扩展性。 线性可扩展性是每秒读取和写入容量的线性增长。 例如,如果您添加更多服务器。 所以,现在你添加了一台服务器,你就有了一定的处理读写操作请求的能力。 如果您添加另一台服务器,然后添加更多服务器怎么办? 您可以添加更多服务器并通过添加更多服务器来增加可扩展性数量的能力,您可以通过应用程序架构获得越来越多的容量处理,这就是我们所说的线性可扩展性。

线性可扩展性

哪些应用程序需要可扩展性?

现在! 下一个问题是,什么样的应用程序需要可扩展性。 答案很简单。 任何可能必须处理来自用户的数百万个请求的应用程序。 如果它正在处理巨大的事务负载。 通常,我们有 ASP.NET 应用程序。 如果有前端,例如电子商务应用程序,可能是航空公司预订应用程序,任何面向公众但流量很大的应用程序,该应用程序是可扩展性的主要候选者。

然后,我们可以拥有用于 .NET Web 服务和面向服务架构的 WCF。 它可能是返回的,也可能是前端 Web 服务,可能由您的 Web 应用程序或您可能拥有的内部应用程序使用。 这些可能必须处理大量请求,需要获取大量数据并将其传递给调用程序。 因此,这类应用程序也需要可扩展性。 然后你可能想要放置某种基础设施,它可以处理请求负载的数量。

然后,我们有大数据应用程序。 这是当今流行的流行语。 很多应用程序,很多架构都在朝着它发展,你可能必须处理大量数据以分布在不同的模块、不同的进程上,但到最后,你会处理大量的数据、大量的请求,以便处理。

然后我们有很棒的计算应用程序,您可能必须通过分布在多个廉价服务器上来处理大量计算,这些就是应用程序。 因此,一般而言,任何可能必须处理来自用户或后端程序的一百万个请求的 .NET 应用程序或 Java 应用程序都是需要在架构中具有可伸缩性的主要候选者。

而且,我们将专注于其中的一些,我们也会继续讨论我们的用例。 而且,伙计们,我们才刚刚开始这个网络研讨会,对于那些刚刚加入的人,我将介绍一些分布式缓存方面的基本概念。 我将讨论您将面临的不同问题和解决方案,并讨论分布式缓存的部署,例如 NCache 在 Microsoft Azure 中。 因此,如果有任何问题,请随时在问题和答案选项卡中输入。 你也可以随时给我你的反馈。 如果您想参与,您可以再次使用相同的问答选项卡。

什么是可扩展性问题?

接下来,一旦我们定义了我们拥有的,什么是可扩展性? 什么是线性可扩展性,什么样的应用程序需要可扩展性? 本次网络研讨会的下一个也是最重要的一点是,您的应用程序将面临什么样的应用程序或什么样的可扩展性问题? 可扩展性问题究竟出在哪里?

现在,您的应用程序架构,它可能是一个 ASP.NET 应用程序或 WCF 服务,这些横向扩展非常好,并且这些扩展已经是线性的。 您可以在前面放置一个负载均衡器,然后您可以简单地添加越来越多的应用程序服务器或 Web 服务器、Web 前端服务器,并且您已经从您的架构中获得了线性可扩展性。 所以,那边没有问题。 关于数据存储的实际问题,这些应用程序服务器或 Web 服务器,它们总是会与一些后端数据源通信,例如数据库状态服务,或者它可能是任何后端文件系统或遗留数据源. 它无法处理巨大的事务负载,并且您无法在此处添加越来越多的服务器。 这张图很好地解释了这一点。

规模瓶颈

我们拥有数据存储的地方存在可扩展性瓶颈。 我们这里有 ASP.NET WCF 示例,但是您可以添加任意数量的服务器,从两台服务器开始,如果您的负载增长,您可以添加另一台服务器,在前面放置一个负载均衡器,然后均匀使用所有这一层的资源。 所以,没有问题。 但是这些应用程序框或 Web 前端服务器总是会与一些后端数据源通信。 这是一个典型的部署,我们有数据库服务器,启动速度不快,然后它们存在可伸缩性问题。 它们会在巨大的事务负载下窒息,然后在某些情况下,它们也是单点故障。 但最重要的是,任何应用程序架构中的这些数据库服务器都会构成非常严重的威胁,这就是可扩展性瓶颈。 因此,一旦将所有请求定位回某些数据库服务器,您将失去在此层上实现的所有可伸缩性。 ASP.NET 会话状态也是如此。 如果您为此使用 SQL Server 或会话状态服务器,那是因为它停留在上面。 它始终是托管所有会话数据的单个服务器,并且会话是一种非常事务性的数据,然后您需要一个非常可扩展的数据源来处理这些请求。 因此,这是我们试图借助分布式缓存系统解决的主要挑战。

解决方案:内存中分布式缓存

解决方案非常简单,就像我说的,您可以使用可扩展的内存分布式缓存系统。 如 NCache 处理所有问题,我们刚刚谈到了与数据源相关的可伸缩性。

下一件事,我很快要做的是讨论内存分布式缓存系统的一些基础知识,例如 NCache. 有一些重要的特征,你会发现 NCache 我希望这将成为我们大多数可用的内存分布式缓存系统的一部分。 所以,在这方面,所以 NCache 如果我必须定义,什么是内存缓存系统?

动态聚类

它是由多个廉价缓存服务器组成的集群,它们连接在一起,您可以拉取它们的内存以及 CPU 容量。 因此,它们被组合成一个容量,您正在提取它们的内存和 CPU 资源。 因此,在物理上它可以是多个服务器,一旦一个简单的网络服务器配置框就可以做到,这并不是那么昂贵,这是您可以用于缓存的东西,然后这些服务器连接在一起并形成正式的逻辑容量。 因此,从您的应用程序的角度来看,您只是使用一个分布式缓存,但实际上,它可能有多个服务器在幕后工作,利用所有计算能力和内存来构建这个内存中的分布式缓存。 所以,它不是这个单一的服务器,这是第一个也是最重要的特征。 它将有多个服务器相互结合工作。 因此,我们已经领先于数据库,我们只需一台服务器托管所有数据并处理所有请求。

数据一致性

下一个特征是关于数据一致性,因为我们在后台处理多个服务器,下一个问题是,我们将如何处理更新。 例如,相同的数据会在一台或两台服务器上更新,或者如果在不同的服务器上有副本或数据的多个副本。 因此,无论您使用什么拓扑,数据都应该以一致的方式更新。 因此,一旦您更新了任何缓存服务器上的任何内容,所有更新都应该对分布式缓存上的所有缓存服务器可见。 顺便说一句,我使用的是一些可见的,我没有使用复制这个术语。 复制是另一个功能。 因此,可见我的意思是,例如,您获得服务器一的请求句柄,该数据已更新。 如果下一个请求发送到服务器 XNUMX,如果您在服务器 XNUMX 上也有相同的数据,那么您应该从分布式缓存中获取更新的值而不是陈旧的值。

因此,就分布式缓存而言,这是一个非常重要的特性,您的所有数据更新都应该一致地应用于所有缓存服务器。 这应该是分布式缓存的责任,而不是您的应用程序。 架构应该支持这个模型。

线性可伸缩性

与我们今天的主题一致的下一件事是如何线性扩展。 因此,分布式缓存应该针对事务和内存容量线性扩展。 它应该让您放弃,您可以在其中添加越来越多的缓存服务器,并且随着您拥有更多的缓存服务器,您可以获得线性可伸缩性。 我之前已经给你看了一张图表。 所以,这就是我在这里所指的,你添加越来越多的服务器,你应该增加你可以处理多少请求者的容量,同时,有多少数据,有多少数据可以存储在线性分布式缓存。 所以,这是一个非常重要的特性,它为您提供了分布式缓存之外的线性可伸缩性,并使您的整个应用程序架构非常可伸缩。

可靠性数据复制

第四个重要特征。 这是选项一,你可以选择一个拓扑,它也支持复制。 您有一个分布式缓存,它可以跨服务器复制数据以提高可靠性。 如果任何服务器出现故障或您需要将其离线进行维护,您不必担心任何数据丢失或应用程序停机。 所以,这些是分布式缓存的一些重要特性。 我将在接下来的幻灯片中越来越详细地介绍这些内容,然后我们还将讨论分布式缓存的特定于 Azure 的部署。 如何在 Microsoft Azure 中使用分布式缓存? 到目前为止,如果有任何问题,请告诉我。 请使用问题和答案选项卡。 我通常看到一些举手,去会议有这个问题,它显示了很多举手,但如果他们真的有任何问题,请告诉我。 请输入问题和答案选项卡,我很乐意为您回答这些问题。 我认为我们应该继续。

这是分布式缓存的典型部署。 这是一般部署,并非特定于 Microsoft Azure。

NCache 在 Microsoft Azure 中部署

我将转移到部署 NCache 在此之后在 Microsoft Azure 中。 因此,通常它可能是内部部署的,也可能是云计算的,就部署而言,它们并不会改变很多东西 NCache 去。 这就是您通常部署的方式 NCache,您将有一个专用的缓存层。

部署

这些可以是本地的物理机器,也可以是托管的机器虚拟机,或者这些也可以是实际的云虚拟机,您只需从云中获取一个虚拟机,然后将其用于缓存。 您可以在单独的专用缓存盒上制定缓存,这是推荐的。 首选平台是 64 位,并且唯一的先决条件是 NCache 是.NET 4.0。 然后是您的应用程序,这些也可以是本地或托管的。 这些可以直接部署在 IIS 中的服务器上,也可以是 Web 或辅助角色,就 Microsoft Azure 而言。 它们都可以连接到此缓存层以满足数据要求。 您可以为这些单独安装,为这些单独安装,或者您也可以将所有内容都放在同一层上。 两种型号均受支持。 但是一旦你介绍 NCache 到您的应用程序架构中,一旦它被部署用于对象缓存或会话缓存,我将介绍 NCache 一旦我们转向用例,用例。

一旦开始使用 NCache,它可以节省您通过后台和数据库的昂贵旅行。 然后它在这里为您提供了一个非常可扩展的平台,您可以在其中添加任意数量的服务器并进行扩展。 现在将此与我之前向您展示的图表进行比较。

规模瓶颈

你在这里有一个非常可扩展的平台,但这是竞争的主要来源。 扩展性瓶颈的主要来源。 现在,如果你比较一下,现在你在应用层和数据库之间有了一个非常可扩展的平台。 这是一个非常可扩展的平台,现在您再次拥有分布式缓存方面的数据源,这又是非常可扩展的。 您可以根据需要添加任意数量的服务器。 如果您的负载增加,您不必担心届时后端数据源会阻塞。 您可以根据需要添加任意数量的服务器,并且可以线性增加您的请求处理能力 NCache. 如果对部署架构有任何疑问,请告诉我 NCache 但总的来说,它非常简单。

现在,接下来就是如何部署 NCache 在 Microsoft Azure 中。 所以,我将使用我们的网站。 我将使用那里的图表,所以请多多包涵。 Microsoft Azure 中的部署与我们在内部部署的部署没有太大区别。

ncache-azure 虚拟机

因此,首先,建议这是基本部署,您将所有内容都放在同一个 Microsoft Azure 虚拟网络上。 例如,您创建了一个虚拟网络,然后您拥有 Microsoft Azure 虚拟机,服务器端部署将始终在 VM 上。 所以,这就是我们选择的模型 NCache 在 Microsoft Azure 中。 您创建一个 VM 或在选择相同的虚拟网络时创建所有 VM 部署。 例如,您可以从三个 VMS 开始,如此处所示,然后您可以根据需要将任意数量的 VM 添加到此缓存层。 最好我们还希望您的应用程序位于同一个 Azure 虚拟网络上。 因此,一切都可以成为同一个虚拟网络的一部分,当您获得大部分性能和稳定性优势时 NCache. 如果对此没有硬性要求,您总是可以将应用程序部署在不同的虚拟机上。

因此,基于此模型,您的应用程序架构可以在 VM 本身上,这意味着您的应用程序可以直接部署在您自己管理的 IIS 上,然后完全负责它,或者它可以是我自己的 Azure Web 角色或辅助角色应用程序端支持模型,但 NCache 服务器端部署总是在虚拟机上。 所以,这就是你申请的方式 NCache 一旦我们进入我们的动手部分,我实际上会向您展示。

另一种部署是您可以为您的 NCache 服务器虚拟机,您的所有服务器都属于同一个虚拟网络。 最好也是同一个子网。 然后您的应用程序也可以位于单独的虚拟网络上。 在这种情况下,您必须在 NCache 虚拟网络。 例如,私有端口在此处映射到公共端口,然后您的应用程序使用此公共端口实际连接到 NCache. 您可能需要在此处执行一些额外的配置,但我们提供了详细的帮助文档,但它可以正常工作。 您可以让这个虚拟网络服务器从另一个虚拟网络访问缓存服务器。 借助相同的功能,您甚至可以拥有缓存到缓存的应用程序。

因此,这是另一种部署,但首选方法是推荐的方法是,您将所有缓存服务器以及应用程序服务器部署在同一个 Microsoft Azure 虚拟网络上。 这时候你会得到最大的好处 NCache. 如果有任何问题,请告诉我。

如果我可以带您获得支持,我们的网站上也提供了 Azure 部署指南。 实际上,让我去这里的文档。 在文档中,我们有一个特定的指南,一个非常详细地涵盖所有这些细节的部署指南。

好的。 有一个问题。 怎么 NCache 来自不同 Redis? 好的。 今天的议程更多的是使用 NCache 或使用 Microsoft Azure 中的分布式缓存系统。 我们有一个单独的网络研讨会 Redis 与 NCache. 我们在哪里谈论可用的不同功能 NCache 然后不属于 Redis. 对于这个问题的快速回答,我建议你在这里访问我们的比较页面,然后你有一个 Redis 与 NCache. 您可以快速注册,然后您应该能够看到所有功能,逐个功能比较 NCache 与 Redis. 事实上,我们还专门为此举办了网络研讨会,这是我们 YouTube 频道上的网络研讨会。 因此,如果您只是登录 YouTube,请查找 Alachisoft 然后在 Alachisoft 会有很多视频,其中一个视频会有 Redis 来源 NCache 标题。 有一个单独的网络研讨会。 我希望这回答了你的问题。 这方面还有更多问题。 好的。 回过头来,既然我们已经介绍了部署,如果有任何与部署相关的问题,请告诉我,我很乐意为您回答这些问题。

分布式缓存的常见用途

接下来是如何使用分布式缓存? 什么是公共区域,您可以在其中使用分布式缓存系统,例如 NCache? 我刚刚列出了三个最常见的,但这些可能是特定于行业的,这可能是特定于您的要求、用例,也可能是您可以使用的不同方式 NCache. 但主要这些分为这三类。

应用程序数据缓存

第一类是应用程序数据缓存。 您可以使用分布式缓存系统,例如 NCache 作为应用程序数据缓存。 以前存在于数据库中并且您的应用程序将进入数据库的任何内容,现在您可以将其放入 NCache. 与数据库相比,您可以获得更快的内存缓存,以访问您以前在数据库中拥有的所有数据。 因此,您可以提高应用程序性能,然后最重要的是,您可以线性扩展数据库无法做到的地方。 您可以扩展到一些戏剧性的水平。 您可以处理大量事务负载,并且可以添加任意数量的服务器。 这涉及 NCache API。 您可以只在键值对中添加数据。 键是字符串,值是 .NET 允许的对象,您可以缓存域对象、集合、数据集、图像,任何类型的应用程序相关数据都可以使用我们的对象缓存模型进行缓存。 然后,这将为您在数据缓存方面提供的功能方面带来一些巨大的好处。

用于 ASP.NET 特定数据的可靠且可扩展的缓存

下一个用例是围绕 ASP.NET 特定应用程序。 例如,ASP.NET,并且有一种非常简单的入门方法 NCache. 我们在这里有三个选择。

ASP.NET 会话存储

我们有 ASP.NET 会话状态存储。 您可以在 MVC 或 ASP.NET webforms 中使用它,或者任何 ASP.NET web 应用程序都可以使用它。 无需任何代码更改,您就可以将会话数据存储在分布式缓存中。 与数据库或状态服务器不同,它不会是单个服务器。 它可以有多个服务器。 因此,它非常可扩展,非常可靠,因为我们在服务器之间复制了会话数据,并且您也可以从中获得非常好的性能,因为它在内存中。 一切都没有任何代码更改。 与 NCache,我们也有一个多站点会话部署。 您可以拥有两个数据中心,无需任何代码更改即可同步您的会话。 因此,这些是您可以使用的一些扩展功能。 在我们对 ASP.NET 应用程序的会话状态支持之外,这不需要任何代码更改。

ASP.NET View State 高速缓存

下一个功能是 ASP.NET view state,这也是没有代码更改选项。 对于那些想知道的人,什么是视图状态? 视图状态是客户端状态管理。 例如,如果视图状态仅应用于 Web 表单,则 MVC 架构不再具有您的状态。 对于 ASP.NET 网络表单,所有控件、所有按钮或页面上的所有小部件,这些都有助于创建视图状态,根据我们的响应将其发送回浏览器,视图状态连接在一起响应数据包,然后发送回浏览器。 在浏览器方面,它从未真正使用过。 它只是停留在那里,当您发回视图状态时,服务器上的请求数据包会随之而来,这就是您实际使用视图状态的时候。 因此,它总是作为响应的一部分发送回浏览器,作为请求的一部分带回服务器,因此,您的请求和响应数据包变得更重。 它从未真正用于浏览器端。 它总是在服务器端使用。 特别是在巨大的交易负载下,它会占用您的大量带宽。

因此,在性能和带宽利用率方面,我们有很多与之相关的问题。 和 NCache 您可以将视图状态存储在服务器端,也可以将其保存在服务器端 NCache,将一个小的虚拟令牌发送回浏览器。 因此,您的视图状态的大小会变小,从而提高您的带宽使用成本。 您可以节省大量带宽。 同时,较小的数据包更容易处理。 您的请求和响应包会变小,这也有助于提高应用程序的性能。 因此,一旦您开始使用我们的 ASP.NET view state 提供者。 这也是一个无代码更改选项 NCache. 您可以非常轻松地在 Microsoft Azure 中使用它。

ASP.NET 输出缓存

这里的第三个重要特性是 ASP.NET 输出缓存提供程序,用于 ASP.NET MVC 以及 Web 场。 如果您的应用程序中有四个不同页面上针对不同请求的相当静态的内容,而不是重新渲染和重新执行所有这些请求,即使您获得相同的数据来响应这些请求,缓存它们和然后将缓存的输出用于后续请求。 如果您再次收到相同的请求,请不要进行演练,然后简单地从中取出缓存内容 NCache 直接地。 因此,我们允许您将整个 ASP.NET 页面输出存储在 NCache 并用于后续请求。 而且这也没有代码更改,因为在我们的 ASP.NET 输出缓存提供程序的帮助下,它节省了大量的处理能力、大量的执行时间和大量的性能优势。

因此,这是您可以快速开始的三个重要方面。 这些都是无代码更改选项。 设置可能需要 10 到 15 分钟,然后您就可以开始看到我们刚刚讨论的所有好处。 而在 Microsoft Azure 中,实际上并没有任何替代品。 您最终将使用默认选项,这意味着您将所有内容都保存在此数据库中的处理器中。 我们已经讨论过与这些相关的问题。 因此,我强烈建议您首先查看这些功能,然后一旦您的用例取得进展,您就可以开始使用我们的应用程序数据缓存。 第三个重要用例 NCache,我在这些方面花费了大量时间,以便能够传达在您的应用程序架构中使用分布式缓存的重要性。 到目前为止,如果有任何问题,请告诉我。

通过消息传递可扩展的运行时数据共享

现在的第三个重要用例 NCache 是您可以在我们的消息传递支持的帮助下,以可扩展且非常可靠、可扩展的方式将它用于运行时数据共享平台。 类似于 MSN 队列和 Java 消息传递服务。 我们还有一个消息传递平台。 由于您已经在缓存中有数据。 例如,添加了一些数据,您有一些产品目录,添加、更新或从缓存中删除了一个产品,您希望根据我们的事件通知传播系统获得通知,该系统可以传播然后通知如果缓存中的数据发生更改,请使用。 因此,有数据级消息,您可以根据需要连接并开始使用这些消息,然后可能还有一些自定义应用程序消息,其中一个应用程序可以在我们的消息传递平台的帮助下与其他应用程序通信。 因此,它是非常强大的数据共享,因为一个应用程序可以与另一个应用程序共享数据,然后它也可以是使用相同分布式缓存系统的不同应用程序之间的消息共享。 所以,这是一个非常强大的功能,很多人不知道它,但就它提供的功能而言,它非常强大。

请让我知道有任何问题。 这些是一些重要的用例 NCache,我将很快介绍。 一旦您计划在 Microsoft Azure 中使用分布式缓存,就会有一个非常重要的概念,我想说的场景非常重要。

要缓存什么数据?

什么样的数据需要缓存? 现在分布式缓存通常用于最容易访问的数据,其中您有更多的读取和写入,然后该数据会被一次又一次地读取以用于后续请求。 我将数据分为两个不同的类别。 你可能有永久数据,通常存在于数据库中,它可能会发生变化,但变化的频率不是很大,这就是为什么我将它进一步分为参考数据和事务数据。 但是我们有永久数据,然后我们有临时数据。 永久数据是真正存在于数据库中的数据,缓存它非常重要。 因此,您可以减少昂贵的后端数据库之旅。

然后,我们有瞬态数据,它是临时数据,长度很短,可能仅对当前用户的范围有效,也可能仅对当前应用周期的范围有效。 可能是用户配置,可能是用户设置,可能是用户 ASP.NET 会话,视图状态输出缓存。 它通常不属于数据库,但将它保存在缓存中确实有意义,具体取决于您需要多长时间以及缓存后需要它的次数。 那么这个数据可以进一步分为其他类别。 例如,在大部分数据被读取的情况下,读取次数多于写入次数或读取或写入次数相同。 因此,引用是读取多于写入,事务是读取和写入。

然后,我们有瞬态数据,它是临时数据,长度很短,可能仅对当前用户的范围有效,也可能仅对当前应用周期的范围有效。 可能是用户配置,可能是用户设置,可能是用户 ASP.NET 会话,视图状态输出缓存。 它通常不属于数据库,但将它保存在缓存中确实有意义,具体取决于您需要多长时间以及缓存后需要它的次数。 那么这个数据可以进一步分为其他类别。 例如,在大部分数据被读取的情况下,读取次数多于写入次数或读取或写入次数相同。 因此,引用是读取多于写入,事务是读取和写入。 因此,您可以考虑缓存所有参考数据,这通常是属于数据库的永久数据。 尝试将它引入分布式缓存并尽可能多地缓存它,这样您就不会回到数据库中。 您可以从中获得大部分所需的性能优势。 然后,您应该考虑缓存一些事务数据,例如 ASP.NET 会话状态、视图状态和输出缓存,因为您不希望在从后端数据源获取这些临时数据或事务数据时失去性能. 根据用户数量,如果您有数百万用户登录,请考虑每个用户访问数据库两次的场景,您可以看到从较慢的来源获取数据需要花费多少时间,来自后端数据源。 从缓存中获取,为此您绝对应该考虑将其缓存在分布式缓存中。

缓存 API 概述

这就是缓存的样子。 它是一个类似于接口的哈希表。 我们有一个基于字符串的键,然后我们有一个对象作为它的值。 对象可以是任何 .NET 参数对象。 您可以将 .NET 允许的任何内容存储为对象缓存。 而字符串键,你可以想出一个有意义的键格式。 例如,所有员工 ID 为 1000 的员工,员工 ID 为 1000 的员工都可以使用此密钥存储在这里。 该员工的所有订单都可以有这个键,你有员工订单,然后是该员工的 ID。 也可能有一个运行时参数。 然后,您可以进行员工查询。 例如,您缓存了负责的查询,并且参数是根据等于经理的头衔查找代码员工。 因此,您可以将集合作为单个对象存储在缓存中。 因此,这只是如何制定缓存密钥的一个示例,但您可以根据需要提出任何密钥基础技术。 这只是一个示例,请使用对您的应用程序更有意义的内容。

小伙伴们,如果有什么问题请告诉我? 我今天没有看到很多问题。 到目前为止,如果有任何问题,请告诉我。 另外,如果我在特定部分走得太慢或太快,请告诉我,这样我就可以让它保持节奏。 您也可以使用相同的问题答案选项卡向我提供反馈,我什至会花更多时间在特定功能上。

小伙伴们,如果有什么问题请告诉我? 我今天没有看到很多问题。 到目前为止,如果有任何问题,请告诉我。 另外,如果我在特定部分走得太慢或太快,请告诉我,这样我就可以让它保持节奏。 您也可以使用相同的问题答案选项卡向我提供反馈,我什至会花更多时间在特定功能上。 好的。 有一个问题,空间数据呢? 好的。 我们也可以查询那种数据吗? 是的。 当然,我们有非常强大的查询支持,这个对象可以是任何类型。 所以,让我告诉你,这涵盖了你计划缓存的所有类型的数据。 现在可以根据您传递的不同参数,根据不同的参数查询数据。 事实上,我们有一个非常强大的对象查询语言,我在这里就已经计划好了。 因此,我们借助对象查询语言进行并行查询。 借助我们的对象查询语言,您可以运行非常灵活的查询。 例如,您有一个问题。 例如,如果我们想要获取当前位置附近的所有场地,是的。 你可以。 例如,您在缓存中传播了所有数据。 您拥有所有菜单,作为单独的对象单独存储在缓存中。 对? 然后你可以拥有它们的对象属性,它也可以为你提供位置信息。 因此,您可以运行查询选择所有场所,其中场所是该位置等于此位置。 因此,如果对象属性具有此信息,您可以从分发缓存中获取所有匹配记录。 这就是为什么这样做的一种方式。

第二种方法是,您将空间信息或您需要查询的所有信息作为这些对象的一部分以标签的形式传递。 您存储您的对象,然后存储其他关键字,这些关键字就在此处作为标签。 这些是标识的标识符,它们在缓存中进行逻辑集合。 所以,你可以只使用基于标签的 API,你说按标签获取,然后你得到与结果匹配的整个集合,或者你甚至可以运行一个查询,你说选择标签等于的场所,标签本质上是您已经添加的位置,其中标记等于 XYZ 位置,您将获得基于该条件匹配的所有记录。 因此,这是处理查询的两种方式,您可以在对象顶部添加标签或仅依赖实际对象属性。 然后对它们执行类似 SQL 的搜索查询。 我希望能回答你的问题。 如果对此有更多问题,请告诉我。

还有一个问题。 我可以根据事件设置某些缓存项目的过期时间吗? 例如,一条记录被缓存,如果它在数据库中更新,它就会过期。 绝对地! 我们有两种到期时间。 我们有,时间就是过期,有两种过期,所以如果时间过去了,你可以让项目过期,这个过期也可以基于数据库依赖。 例如,数据库中的某些更改会回答您的问题。 例如,数据库中的一条记录发生了变化,你在缓存中有一条记录,它依赖于那个,一旦该数据库记录发生变化,数据库就可以发送事件通知,并且缓存中的项目可以自动从前面删除缓存。 因此,它可以在数据库中过期后立即过期。 因此,这正是我们在关系数据库依赖方面提供的内容,而 SQL 依赖将涵盖这一点。 如果我们能快速浏览其他幻灯片然后进入我们的对象缓存部分,我将不胜感激,这应该会回答很多问题。 请让我知道,如果还有其他问题,我将从同一位继续演示。

有一个问题。 你能展示一个样本持久化并从样本缓存中检索数据吗? 我会很快建议您查看我们的示例,这些示例以 NCache 这些也可以在我们的网站上找到。 所以,如果我很快带你去看我们的样品,你就去吧 NCache. 我可以引导你找到样本,它可以处理这个问题。 所以,我们有数据库同步,然后我们有依赖关系。 所以,这些应该。 依赖句柄、SQL 依赖和数据库同步是另一种示例,它可以帮助您处理借助读写请求的场景。 我希望这能回答你的问题。 非常感谢你。

还有一个问题。 我们可以查询这个来对数据进行排序吗? 是的。 我们按支持顺序分组。 因此,您可以在查询旁边使用这些属性。 非常好的家伙! 非常感谢您发送这些问题。 我真的很感激这些。 请让他们来。 因为,这是在我们的演讲结束时计划的,我已经准备好介绍这些了,但是很高兴有所有的问题,所以请继续提出。 非常感谢你。

NCache 建筑

接下来,我将快速进入架构。 分布式缓存在添加或删除服务器方面非常灵活。 您可以根据需要添加任意数量的服务器。 您可以使任何服务器脱机。 它基于基于 TCP 的缓存集群。 这是我们自己实现的问题协议。 我们没有使用任何第三方或 Windows 集群。 即使在 Microsoft Azure 中,您也只需依赖 IP 地址和端口即可 NCache 会照顾其余的。 它是 100% 的点对点架构。 没有单点故障,您可以使任何服务器脱机并添加新的服务器和客户端不会有任何影响。 您可以动态地将更改应用到正在运行的缓存集群。 然后这些配置是动态的,这些服务器与客户端保持持续通信。 任何服务器关闭或添加新服务器都会立即得到通知。 有一个内存映射,它会传播到客户端,并且每次缓存发生变化时都会更新。 因此,这些映射集群成员信息和缓存拓扑信息映射,一旦缓存集群发生变化,它们就会立即更新。 因此,有一个连接故障转移支持,此外,如果服务器出现故障,客户端将自动执行此操作,服务器将使该服务器离开,幸存的节点自动变为可用,客户端将自动连接。 因此,简而言之,就客户端应用程序而言,它不会有任何数据丢失或任何应用程序停机,然后有四种不同的拓扑结构可供您选择。

缓存拓扑

主动和被动模式或者主从模式将基于缓存拓扑来确定。 就像我说的,它是一个点对点的架构。 因此,每个服务器都独立参与缓存集群。 因此,没有依赖关系,也没有像您在 AppFabric 或者在配置或集群管理方面没有主动或被动。 就其在缓存集群中的位置而言,每台服务器在配置方面都是 100% 独立的。 但是有不同的缓存拓扑,我们有主动和被动,但这些都是基于缓存中的数据。 如果数据是主动可用的,我们称之为主动,如果数据只是备份,客户端没有连接到它,我们称之为被动。 但是这个被动服务器再次以 100% 对等架构添加到缓存中。

有一个问题。 是否有任何适用于移动平台、android 或 iOS 的 SDK 可以使用 NCache 在原生移动应用程序中? 目前我们拥有 .NET 和 Java API,我们正在开发 RESTful API,因此,如果发布,我很确定您将能够在 android 和 iOS 应用程序中使用它。 请务必向我发送电子邮件,向我发送请求,我会将其提交给工程部门,我会尽快回复您并提供时间表。

现在我们有四种不同的缓存拓扑。

镜像缓存

我们有镜像,它是主动/被动的。 我将快速浏览这些内容,因为这不是我们今天的议程。 我想更多地关注我们的动手部分。 那么,我将让您了解一下不同的拓扑结构 NCache 优惠。 我们有四种不同的拓扑。 Mirrored Cache,它是一个两节点的主动-被动。 您让所有客户端都处于活动状态,然后我们就在这里有一个备份服务器。 如果活动停止,备份将自动变为活动状态。 这些客户端会自动进行故障转移。 这建议用于较小的配置,非常适合读取,非常适合正确并且也非常可靠。

复制缓存

然后我们有 Replicated,它是一个主动-主动模型。 因此,两台服务器都处于活动状态,但客户端是分布式的。 因此,如果您在 Microsoft Azure 中有六个 Web 角色或辅助角色,并且负载均衡,则一些会连接到服务器 XNUMX,而另一些会连接到服务器 XNUMX。 我们在这里有一个同步模型。

在镜像中我们有异步,​​所以读取性能也非常快。 在复制中,我们总是有一个同步模型。 因此,我们在每台服务器上都有一个完整的缓存副本,这些服务器具有相同的数据,并且所有更新都以同步的方式应用于所有服务器。 例如,您在服务器 XNUMX 上更新服务器项目编号 XNUMX,只有在该操作完成后,它才会以同步方式应用于服务器 XNUMX。 但是读取,它们在客户端连接的服务器上本地应用。 所以,读取速度非常快,可扩展性非常好,写入非常一致,我想说,因为如果您在这里更改某些内容,您将始终在此处进行更改,并且只有该操作才能完成。 因此,对于更新的可靠数据事务,对于超高速性能,这是一个非常好的拓扑结构,如果您丢失服务器一,这些客户端将故障转移到服务器二,如果您丢失服务器二,这些客户端将故障转移。 因此,没有数据丢失,没有应用程序弹跳。

分区缓存

然后我们对缓存进行了分区,我们对数据进行了分区,然后通过复制进行了分区。 因此,我们对数据进行了分区,您可以根据需要拥有两台或更多台服务器,并且数据在所有服务器上自动划分。 一些数据将进入服务器一,一些数据将进入服务器二。 硬币的分布图已经知道,数据存在于缓存中的位置,他们会查明服务器并使用该服务器读取和写入数据。 更多的服务器意味着更多的从缓存中读取副本,更多的写入,更多的服务器读取数据,更多的服务器写入数据。 因此,这些服务器有助于提高整体性能和整体可扩展性。 因此,更多的服务器意味着更多的缓存可扩展性。 分区没有任何备份。

分区副本缓存

我们有带有副本的分区,您可以在被动副本分区中的另一台服务器上备份每个分区。 例如,一个人的备份在服务器二上,而服务器二的备份在服务器一上。 因此,如果服务器 XNUMX 出现故障或您需要使服务器脱机,则不会丢失数据。 备份一次可用。 这也是非常线性可扩展的,事实上,就性能数字而言,它是我们最具可扩展性的拓扑。

让我快速向您展示一些基准数据来支持这一点。 如果有任何问题,请告诉我? 就像我说的那样,我将快速浏览这些拓扑以节省一些时间。

这是具有两个节点的镜像缓存。 复制非常适合读取,写入不是那么可扩展,但您可以在这里看到要点,因为它具有更新和分区的同步性质以及读取和写入可扩展性。 具有读取和写入功能的分区副本,它还具有备份,因此您可以获得备份以及性能和可扩展性。 然后我们也使用同步副本对副本进行了分区。

客户端缓存

还有其他一些功能,例如,我们还支持本地近客户端缓存,无需任何代码更改,您也可以在应用程序端打开缓存。 并且此缓存将与服务器缓存同步,主要推荐用于引用类型的数据。 因此,如果您的读取次数多于写入次数,您可能希望将其打开,这将为您在现有应用程序之上提供超快速的性能改进。 它将您通过网络的行程保存到分布式缓存中。 这已经将您的旅行保存在数据库中,但您甚至可以使用客户端缓存将这次旅行保存在您必须通过网络访问的地方。 你只需要把它关掉。 而且你甚至可以让它在你的应用程序的进程中进一步省去序列化和进程间通信的过度。 和 NCache 管理所有同步。 如果此处发生更改,则会在此处以及其他客户端缓存中传播,反之亦然。 这是一个非常好的开始功能。 我已经介绍了性能基准。

分布式缓存的广域网复制

然后我们在 Microsoft Azure 中也支持 WAN 复制。 例如,如果您有两个数据中心,一个在纽约,另一个可能在欧洲,那么您甚至可以将数据从一个数据中心传输到另一个数据中心。 您可以在这里拥有一个缓存集群,并在我们的网桥的帮助下,它也由主动-被动节点备份,您可以将数据传输到网桥,然后网桥可以将其传输到目标站点。 对于 DR 场景,这可能是主动-被动的,也可能是主动-主动的。

好的。 有个问题。 我是否可以在断开连接的系统中使用客户端缓存,该系统是暂时没有网络连接的移动应用程序? 这是一个非常好的问题。 问题是我可以在断开模式下使用客户端缓存吗? 我们已经讨论过了; 这是其中一位客户提出的功能要求,然后我们实际上进行了详细讨论。 所以,有一个您感兴趣的特定要求。我们已经有一些计划,我们已经讨论过这个,因为我们已经有一个类似的请求。 如果您可以就此向我发送一封电子邮件,我希望将客户端缓存用于我的用例,并且我希望即使在断开连接模式下也能使用它。 我很乐意将其传递给工程部门,因为他们已经在讨论它并且他们恰好提供了这个。 非常感谢你。

好的。 在那种情况下,我会等你的电子邮件。 此时,客户端缓存与服务器缓存相结合。 如果这会导致客户端缓存下降,因为它与服务器缓存同步,所以如果这也会丢失所有数据。 但我们计划使用断开模式,即使服务器连接断开,客户端缓存仍保持启动并运行,它还会将一些操作排队等待稍后执行。

动手演示

接下来,我将快速向您展示一个动手演示。 实际产品如何工作? 我们只剩下很短的时间了,我相信我们还有十分钟。 因此,我将快速为您提供 Azure 概述。 为了开始使用你基本上需要什么 NCache 是您计划部署 NCache.

首先,您需要创建一个 Azure 虚拟网络。 您来到 Microsoft Azure,创建一个虚拟网络。 您可以只使用快速创建或自定义创建,然后,例如,如果我选择快速创建,我可以说 NCache 虚拟机。 这将是我将用于的虚拟网络 NCache 然后我可以创建这个虚拟网络。 您可以根据需要提供有关虚拟网络的任何特定详细信息。 或者,您的环境中可能已经有一个要用于的虚拟网络 NCache 部署。 所以,这是我们的第一步。 我有一些已经创建的虚拟网络。 所以,我可以继续进行下一步。

下一步将是创建 NCache 虚拟机。 你只需要创建一个可以拥有的虚拟机 NCache 预装的,你可以直接安装 NCache 从 Azure marketplace 那是为了 NCache professional 但如果你有兴趣 NCache enterprise,您可以简单地使用普通图像 2012 服务器。 安装 NCache 在它之上,然后保存该图像以供稍后阶段使用,然后加载它,每次您需要生成一个新的虚拟机时 NCache 服务器部署。 因此,我可以从图库中选择一个图像,例如 2012 服务器。 我可以选择下一个,只是给它一些名字。 比如demo 3。我会选择一些服务器层,然后我可以根据需要填写一些信息。

天蓝色

这些是 Azure 特定的步骤。 所以,我很确定你会熟悉这个。 接下来最重要的是你是否想创建一个新的 cloud service 或使用已经存在的那个。 例如,如果我使用基准测试,它也会自动选择虚拟网络。 但是您可以创建自己的虚拟机 cloud services 也可以选择创建一个新的 cloud service. 但是,我建议您仍然为所有服务器 VM 选择一个虚拟网络,然后对于所有服务器 VM 应该是相同的 NCache. 因此,就服务器到服务器的通信而言,您可以从系统中获得更多性能。 所以,我将选择这个基准,并基于此我可以选择下一个。

天青2

如果需要,您可以填写有关网络的一些特定详细信息。 但总的来说,这就是我所需要的。 所以,我可以……好吧。 我选择的云服务器不支持这种虚拟机。 所以,我只需要选择创建一个新的 cloud service 接着就,随即。 好的。 所以,我只会说它批准,然后你就可以了。 所以,事情就是这样。 我只是要取消这个。 我这里已经有了这些服务器,事实上,我可以快速登录到一些我已经配置好的服务器。 所以,请多多包涵。 让我向您展示如何开始创建缓存并在您的环境中进行配置和快速测试。 我们有大约十分钟的时间。 所以,我想充分利用它。 伙计们,请随时发布您需要的尽可能多的问题。 我总是在准备环境时回答问题。

好的。 我已经有了这些服务器。 我可以快速登录这些。 我们已经使用这些进行了一些测试,我想我在这里弄乱了密码,请多多包涵。 给你! 好的! 给你! 然后我在这里有那个Demo 2。 所以,这是我的两个盒子。 好的! 因此,我已经配置了这两个框,它们是 Microsoft Azure 中同一虚拟网络的一部分。

有个问题。 我是否一定需要 VM,或者我可以使用 Azure 应用服务器吗? 码头工人呢? 我们还没有任何 docker 支持。 如果他们正在研究一个,我可以与工程部门核实。 就服务器模型而言,对于 NCache 您需要在 Microsoft Azure 上有一个 VM。 虚拟应用程序可以是服务模型,也可以是 cloud service,它可以是 Web 角色,也可以是工作角色,也可以是部署应用程序的实际 VM。 但是 NCache 服务器部分必须是虚拟机,就像我说的那样,最简单的方法是创建一个预先配置的虚拟机映像 NCache. 将它保存在图库中,然后在需要生成它的新实例时加载它。 您甚至可以选择相同的自动缩放,您可以使用 VM 模板, NCache 安装激活和配置后,当您的节点增长到某个限制时,您只需生成那些新的虚拟机。

还有一个问题。 您可能已经提到,在带宽利用率方面是否存在用于数据减少的加密和压缩,我相信您正在询问加密和压缩。 是的! 这两个功能无需任何代码更改即可使用。 您可以加密您的数据以进行敏感数据传输,可以对数据进行加密,然后也可以对数据进行压缩。 所以,这些是一部分 NCache 支持。 非常感谢您提出这些问题。 如果还有其他问题,请告诉我。

设置环境

我很快想向您展示实际的产品。 因此,接下来您需要做的是访问我们的网站并安装 NCache 要么是云版本,就在这里,它是专业云,它在 Microsoft 中可用 Azure marketplace 或者只是下载常规企业版并将其安装在您的 Microsoft Azure VM 上。 我已经完成了企业安装。 至此,第一步完成。 现在第二步是创建未命名的缓存,为此您可以启动一个 NCache 自带的管理器工具 NCache. 因此,您可以根据需要从一个 VMS 管理所有内容,或者您​​也可以完全从一个单独的服务器管理它,该服务器可以通过网络访问这些服务器。

创建集群缓存

下一步是创建一个命名缓存。 我很快就会去做。 它被称为演示缓存。

创建缓存

这是您将用于所有客户端应用程序以使用此缓存的名称。 您将能够引用此名称以便继续从缓存中获取数据。 我将选择分区副本缓存拓扑,因为这是最推荐的一种。

分区副本

我将在此选择下一个选择异步作为复制选项,因为它更快。 服务器 1 并查看它使用服务器的私有 IP,这就是为什么我建议您根据服务器到服务器部署来衡量虚拟网络。 因此,它们可以在内部 IP 上访问,并且您可以在服务器之间进行非常快速的通信。

IPS

默认情况下,用于通信的 TCP 端口 Azure VMS 已打开防火墙。 所以,我建议你把它关掉或者至少打一下 NCache 防火墙上的通信端口。 然后每台服务器的缓存大小取决于您计划在缓存中拥有的基于数据的内存。 因此,如果您需要两个 gig 的缓存大小,只需在此处指定正确的内存量即可。 这只是一个上限,如果缓存已满,您有两个选择,您可以拒绝新更新,这意味着无法添加数据,您会遇到异常,或者您可以打开驱逐,您只需指定驱逐百分比这些算法可以控制使用这些算法可以删除多少项目,以便为新项目腾出空间。 因此,如果您的缓存已满,驱逐被打开,一些项目将被自动删除,您将能够添加更多项目。 我只是选择使用默认设置完成。

完

然后这完成了我们的第 2 步,我们在右侧窗格中配置了缓存,其中包含与此缓存相关的所有设置。 第 3 步是添加客户端节点,我可以添加演示 3,但由于我们只有两台服务器,我也将添加这两个框作为客户端。 第 4 步是启动并测试这个缓存集群,为此我只需右键单击并选择它,这将在我的所有缓存服务器上启动此缓存,顺便说一下,这些客户端节点实际上是我的 Web 角色或虚拟机,其中我的应用程序已部署。

开始

所以,这就是为什么我建议您也将所有内容都放在同一个网络上。 所以,你可以从 NCache 经理。 并右键单击统计信息,这将打开 perf-mon 计数器。 缓存已启动 某些设置显示为灰色,在缓存运行时无法更改,但您仍然可以更改某些设置,例如可以打开压缩,右键单击并选择硬应用配置。 会要求您先保存项目。 所以,我将这样做,然后硬应用配置。 你去吧。

统计

现在缓存已经配置好了,客户端也已经配置好了。 我们完成了三个步骤,我们已经安装了 NCache.

模拟压力并监控缓存统计信息

我们已经创建了缓存,我们配置了客户端,从配置的角度来看,我们已经完成了,但我们只需要启动并运行这个缓存集群,为此,我将使用一个压力测试工具,它安装在 NCache. 并针对我的缓存运行它。 所以,我也可以看到一些活动。 我还将登录到我的第二个盒子并运行这个基于控制台的应用程序。 所以,在那之前,我运行第二个实例,查看每秒请求数计数器。 我们每秒有大约一千个请求由一个压力测试工具实例生成。

统计数据2

在第二台服务器上,我将运行它。 因此,我们有更多的负载,并注意到每秒请求数计数器几乎翻了一番。 每秒两千个请求。

统计数据3

虽然我已经从这个盒子运行了一个实例,但它仍然在使用两台服务器。 我运行了另一个实例,该应用程序也将两台服务器结合使用,然后我们有了这个监控工具,它可以从服务器端为我们提供运行状况、CPU、请求、大小、网络和不同的矩阵,就像我们从客户端。

XNUMX月XNUMX日

您还可以像我在这里所做的那样创建自己的仪表板。 由于时间限制,我很抱歉,我必须稍微快一点,但这是一个简单的五个简单步骤开始 NCache. 我们的缓存已启动并正在运行。

使用 NCache 样本

接下来是在您的实际应用程序中使用缓存,为此,您可以快速参考我们的 NCache 样品。 例如,如果您想使用基本操作,这就是示例。 如果你想使用会话状态,你可以使用这个 ASP.NET 会话状态应用程序。 我们还在此列表中提供了视图状态和输出缓存示例。 所以,利用这些并参考这个使用 NCache 在实际应用中。

有个问题。 我可以配置两级缓存,一个更大的等于 200 GB 的持久状态,一个更小的等于 1 GB 在内存中的易失性,并让一个 1 级内存与来自 2 级缓存的内存常用引用对象的子集同步? 这个有可能。 你有两个问题。 第一个问题是您是否可以使用两个不同的内存创建两个不同的缓存。 是的。 您可以,我们的大多数客户为静态数据创建一个缓存,为动态数据创建另一个缓存。 所以,这是您可以做的事情,您可以为这两个缓存创建完全不同的配置。

接下来的问题是,这两个缓存之间是否有可能同步数据? 是的。 你可以。 有这个缓存同步依赖。 该功能是私人可用的,但我可以分享一些有关如何实现这些功能的细节,并且您也可以在两个不同的缓存之间建立同步依赖关系。 同样的功能是我们在任何有客户端缓存的地方使用实物缓存,这是一个缓存,它与其他服务器上配置的集群缓存同步。 所以是的。 要回答您的问题,是的,您可以有两个不同的缓存,并且您还可以在这两个缓存中的数据之间进行同步。

我会快速为您总结一下,您可以利用很多对象缓存增加,这些是 NCache 对象缓存支持,然后我们已经介绍了 ASP.NET 会话的视图状态。 还有一些第三方集成。 所以,这基本上是我们网络研讨会的结束。 由于时间限制,我很抱歉跑了一些地方,但只是重申一下,我们已经介绍了一些关于无能问题的基本细节,讨论了解决方案中的内存中分布式缓存,讨论了 Microsoft Azure 中的部署,不同的用例, 集群支持, 拓扑支持 NCache. 我们有一个关于如何开始使用 Microsoft Azure 的具体动手演示 NCache 去。

请让我知道,您觉得这次演讲怎么样? 您总体上喜欢该产品吗? 给我你对此的反馈。 您可以在最后做一些事情。 您可以访问我们的网站并下载 30 天的试用版 NCache. 您也可以选择我们的云版,即 NCache professional cloud,它在 Microsoft Azure 上可用。 我们也有一个客户。 然后,如果需要,您甚至可以使用您的 Azure VM 来搭配企业版产品。 您可以通过访问支持页面与我们的支持团队取得联系。 您可以通过以下方式与支持人员取得联系。 support@alachisoft.com.您可以根据需要请求产品演示,也可以与我们的销售团队联系以获取定价信息。 所以,我们已经在我们的一小时标记处,所以我认为是时候说再见了。 即使在此演示之后,如果有任何问题,请告诉我。 您可以通过电子邮件或电话联系,我很乐意看到你们提出的任何问题。 非常感谢你们。 很高兴介绍 NCache 今天的网络研讨会。 请让我知道您对产品的评价如何,您对演示文稿的评价如何,我们随时可以从中获取。 非常感谢大家的时间。

接下来做什么?

 

联系我们

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