NCache 建筑

录制节目
作者:罗恩·侯赛因和扎克·汗

今天的网络研讨会将基于 NCache 建筑。现在,我们将概述分布式缓存,以及它如何解决 .NET 和 .NET Core。 我们将讨论常见的用例,以及分布式缓存架构和集群细节,以及您可能有的任何问题,不仅在以下方面: NCache,但一般来说是缓存。 现在,在本次网络研讨会的任何时间,我们都可以在 GoToWebinar 问题选项卡中选择提问,因此请方便地查看问题选项卡。 而且,一旦您写下问题,我就可以在演示过程中提出它,由罗恩或我自己回答。 在本次会议结束时,我们还有少量时间来解决提出的任何其他问题,但我们期待着度过愉快的时光。

所以,事不宜迟,我将把它交给罗恩,让我们开始吧。 非常好,谢谢你,扎克。 所以,正如扎克刚才提到的,今天的主题是 NCache 建筑学。 在本次网络研讨会中,我将详细介绍如何 NCache 集群的工作原理,您可以选择的最常见的拓扑是什么,以及集群的主要好处之一 NCache 就您的应用程序用例而言。 这些用例是什么,以及如何充分利用 NCache 在您的服务器应用程序中?

所以,我希望每个人都能看到我的屏幕。 如果我能快速得到确认,我会很快开始做这件事。 是的,我想如果可以的话我们都很好。 我想,就这样吧。 是的,看起来不错。 完美的。 好的,让我们快速开始吧。

可扩展性问题

好吧,让我们首先定义什么 NCache 是? 为此,我必须继续定义什么是可扩展性问题,以及如何定义可扩展性问题。 NCache 能够解决可扩展性问题。 因此,在部署了应用程序的典型服务器架构中,无论是否部署了这些应用程序,通常都会有多个实例或多于一台服务器。 因此,可以肯定地说您的应用程序层具有很强的可扩展性。

可扩展性问题
可扩展性问题

您可以在应用程序层中添加任意数量的服务器。 您可以构建一个 Web 表单、一个应用程序表单,如果多个应用程序服务器或 Web 服务器托管同一应用程序,但它们在一个团队中工作,并且它们在彼此之间分配请求负载。 而且,如果您采用更新的架构,甚至是微服务架构,您就可以单独扩展您的应用程序服务、需要更多计算或更多请求处理能力的微服务。

因此,应用程序层具有很强的可扩展性。 它是线性可扩展的。 随着您的成长,您能够处理越来越多的请求负载。 当您处理数据库(例如关系数据库)时,这个问题就会发挥作用。 因为所有这些应用程序,无论可扩展性水平如何,它们总是必须与后端数据库进行通信。 而且,当他们与后端数据库对话时,这通常是单一来源。 而且,这不太可扩展。 非常适合储存; 你可以拥有大量的磁盘资源。 因此,您可以从中获得存储优势。 但是,当应用程序上有巨大的事务负载,并且这会转化为数据库事务负载时,数据库往往会崩溃。 而且,您知道,这就是应用程序在请求处理方面遇到困难的主要问题。 它不可扩展,最终用户体验也会受到影响。

NoSQL databases正在某种程度上解决这个问题。 您可以拥有 SQL 数据库,但这需要您的应用程序重新架构,使其停止使用关系数据库并开始使用 NoSQL database 而且,这是一个大项目。 所以, NoSQL 并不总是解决可扩展性问题。

解决方案: NCache 分布式缓存

那么,当我们遇到这种情况时,我们现在应该做什么呢? 解决方案非常简单:您应该有一个内存中的分布式缓存,如下所示 NCache。 首先,它位于内存中,因此您获得的第一个好处是应用程序的性能将得到提高。 与关系数据库相比,它的速度非常快。 而且,主要的好处是它是线性可扩展的。 与数据库服务器不同,数据库服务器通常是单一来源。 NCache 可以驻留在多个服务器上。 它允许您创建一个 缓存集群 它可以在多个盒子上运行。 而且,如您所知,您的要求或需求会增长,您必须拥有更多需要从应用程序层处理的请求处理能力,您可以在运行时在缓存集群中添加更多服务器。

可扩展性解决方案
解决方案: NCache 分布式缓存

关于的好处 NCache 是除了关系数据库之外还使用它; 或后端数据库,它不能替代传统数据源。 您知道,它将补充现有的数据源,从而提高应用程序的性能。 它能够提高应用程序的请求处理能力。 而且,随着您在应用程序端的增长,您始终可以增加缓存集群中的服务器数量,因为这些是集群中的服务器,因此它们作为一个团队工作。 它们能够以这样的方式在它们之间划分请求负载,从而为您提供线性可扩展性。 所以, NCache 是一个线性可扩展的模型,并且非常易于使用。 我们来谈谈部署架构是如何工作的。 因此,在典型的大型生产环境中,这就是 NCache 看起来像:

NCache Enterprise
NCache 在企业

你会有一堆服务器。 这些可以是 Windows 或 Linux 服务,其设计方式如下: NCache 位于应用程序和数据库之间。 例如,您可以从两个或三个开始 NCache 服务器,然后可以增加到四到五台 NCache 服务器和不同类型的应用程序 - 例如,您的 ASP.NET 或 ASP.NET Core Web 应用程序、您的 .NET 或 .NET Core 服务,或.NET/.NET Core 服务器应用程序。 或者甚至可以是 Java 或 Node.js。 因此,这些应用程序也可以利用分布式缓存。

NCache 本身是用.NET/编写的.NET Core。 它可以在 Windows 和 Linux 机器上运行。 同样,您的应用程序可以在任何平台上运行,并且不会出现任何问题。 通常,我们建议您 NCache 在专用设置服务器上,该服务器仅托管 NCache,以便您拥有专门的资源性质 NCache。 并且,您的应用程序服务器位于单独的层上。 这样您也可以为您的应用程序提供专用资源。 但还有另一种部署选项,对于较小的配置,您可以使用 NCache 坐在同一个盒子上,您的应用程序也在其中运行。 所以,这总是有可能的 NCache。 但是,正如所讨论的,建议的选项是您有一个单独的缓存层,如图所示。 进而 NCache 位于应用程序和数据库之间。 这里的想法是缓存您在应用程序中最常使用的任何数据。 它可以是参考数据或交易数据。 通过“引用”,我的意思是读取密集型的数据,而通过“事务性”,我的意思是读取密集型和写入密集型的数据。 而且,一旦您知道要缓存哪些数据,您就可以将该数据称为您的“工作集”。 第一次,您可以从数据库中检索该数据,然后您也可以将其添加到其中 NCache 并且,后续调用可以通过 NCache 只是,您可以节省昂贵的数据库访问次数。 这就是我们通常所说的“缓存旁”模式,您所做的任何更改也会传播到缓存,然后传播到数据库。 而且,缓存中不存在任何数据库,您始终从数据库中获取它并将其保存在内部 NCache 但你总是先检查缓存。 因此,如果您从缓存中找到数据,则不必访问数据库并从该点返回。

读通/写通

另一种方法是使用“通读”或“通写”,此处用虚线表示。 NCache 有一个可以自动执行此操作的功能,它为您提供“缓存直通”选项,并且对于读取称为“直读”,对于写入称为“直写”。 它将以这样的方式工作:您始终使用缓存作为主要源,并在缓存上实现读通写处理程序,并且它将负责更新后端数据源。 因此,无论您执行什么读取操作,如果数据不存在,它将根据您的提供者无缝地转到您的数据库,为您的应用程序检索它,并返回到应用程序并将其存储在内部 NCache。 对于更新,它将以同步或异步方法更新缓存以及数据库,具体取决于您从应用程序调用的模型。

因此,我将分享有关通读、通写和缓存模式的更多详细信息,但只是为了向您提供高级部署图片,这就是您所看到的 NCache 以服务器形式部署,其中可以连接多个应用程序或应用程序形式 NCache 然后,他们可以利用分布式缓存,其中内存访问可以提高应用程序的性能。 而且,在缓存层中拥有多个服务器能够为您提供线性可扩展性。 我希望这一点很清楚; 如有任何疑问,请告诉我。 嗯,幸运的是,目前看来还没有,所以请放心继续。 非常好。

NCache 可扩展性数字

那么接下来我要讲的是 NCache的可扩展性数字。 我们刚刚提到过 NCache 能够解决您的应用程序的可扩展性问题。 所以, NCache 本身是线性可扩展的。 因此,随着应用程序层的可扩展性,您知道,通过线性可扩展模型解决了数据库瓶颈,以下是一些可供参考的数字。 这些是我们在 QA 环境中进行的基准测试,我们使用了 CPU 和 RAM 较高的服务器,以便我们可以真正扩展它们,并在高负载情况下使用它们。 我们从一台服务器开始,然后用两台服务器不断增加应用程序负载。 一旦一组服务器的 CPU 和 RAM 容量达到最大,我们就添加另一台服务器。

NCache 可扩展性数字
NCache 可扩展性数字

这就是经验法则; 您可以继续使用现有的缓存服务器,从两个开始 NCache 服务器,当您看到这两台服务器的硬件容量已达到极限时,如果您的 CPU 已达到极限或您的 RAM 已达到极限,那么您就需要做出选择,我现在需要进行横向扩展,并且我需要在缓存集群中添加第三台服务器。 这正是我们对平均 1 KB 对象大小所做的事情,我们不断增加应用程序负载并不断增加服务器数量。 直到给定的服务器组达到最大。 而且,这不是一触即发的数据; 这是真实的应用数据,但在我们的 QA 实验室中进行了模拟。 因此,使用两台服务器、三台、四台、五台、最多五台服务器,我们每秒能够处理 2 万个请求,平均对象大小为 1 KB。

因此,它是一致应用于缓存的读取和写入的组合。 总体而言,实现了每秒 2 万个请求的吞吐量。 同时,又不影响性能。 因此,吞吐量不仅仅指每秒有大量请求;还指每秒有多少个请求。 但是单个请求的延迟也应该保持,并且它应该是超快的。 我们的网站上发布了该视频演示以及白皮书(看这里)。 而且,这也是您可以查看的内容。

分布式缓存的常见用途

好的,我们来谈谈一些常见的用例 NCache.

  • 应用数据缓存

    第一个用例是缓存应用程序数据,我们称之为 应用数据缓存。 现在这是来自后端数据库的数据。 我们已经确定,数据库通常很慢,因为它是基于磁盘的,相比之下,RAM 是更快的来源。 另一个问题是数据库在高流量下往往会崩溃。 如果您有大量事务负载并且只有一台服务器,则预计它不会为您提供应用程序端所需的性能。 因此,通过使用在应用程序中缓存应用程序数据非常有意义 NCache。 这很简单; 你用 NCache API,您只需调用缓存即可。 您可以通过调用缓存初始化 API 连接到缓存。 一旦您连接到缓存,您就可以调用 '缓存.添加、缓存.更新、缓存.删除' 要么 '缓存.获取' 从缓存中检索数据。 因此,我将在最后向您展示一些示例。 但是,这里的想法是,无论您认为您将多次阅读什么数据,无论是参考数据还是交易数据。 作为参考数据, NCache 将增加很多价值,因为它不必返回数据库来检索任何更改。

    常见用途
    分布式缓存的常见用途

    这样,缓存中的数据将可以使用更长的时间。 而且,当您使用来自 NCache,你不必去后端数据库。 这可以提高应用程序的性能。 而且,它为您提供了可扩展性,因为 NCache 相比之下是可扩展的。

    因此,缓存所有参考数据是非常直观的,但我们还建议您也应该缓存部分甚至大部分交易数据。 根据我们的经验,对于您多次读取的任何数据,即使您会读取两到三次,我们也建议对其进行缓存。 因为即使它在数据库中被更改,并且在更改之后,如果您读取多次(两到三次),缓存该数据也很有意义,因此,您不必进入后台数据库。 而且,我们有内置的功能 NCache 这也可以为您提供与数据库 100% 的同步。 你知道,这是你也可以始终考虑的事情。

    罗恩,我有一个简短的问题,主要是:
    我是否始终需要通过网络访问集群缓存? 我担心网络问题可能会导致我的应用程序无法运行。 有什么方法可以在本地维护我的一些数据吗?

    好的,通常情况下,默认部署是我们建议您 NCache 在不同的盒子上,然后你的应用程序在不同的盒子上,对吧? 这样,当 NCache 基于TCP协议,所以它是一个网络调用。 有一个称为“客户端缓存”的功能,它是位于应用程序框中的本地缓存。 而且,在某些情况下,如果您确实需要更多执行者,并且您真的不希望有任何由网络引起的延迟,也可以将其设置为“进程内”,这意味着它将位于您的应用程序进程中。 因此,当发生这种情况时,数据子集会自动带入客户端缓存。 因此,这将节省任何进程间通信。 然后还将节省任何网络通信或任何网络开销。 所以,我们确实有一个特点; 一旦我们讨论我们的拓扑结构,我将介绍这一点。 因此,我将分享更多详细信息,但只是为了让您快速概览,这就是客户端缓存的工作原理。 它是一个缓存,与您的应用程序位于同一个盒子上。 而且,这里的想法是,如果启用了客户端缓存,则不需要频繁的网络旅行。 而且,无需更改任何代码即可工作。 所以,我希望这能回答这个问题。 如果还有其他问题,请告诉我。 是的,听起来不错。 罗恩,把它拿走。 非常好。

  • ASP.NET 和 ASP.NET Core 高速缓存

    下一个用例 NCache 在网络应用程序中。 您知道,如果有一些缓存用户数据的要求,对吧? 并且,通常是 ASP.NET 或 ASP.NET Core 会话状态。 现在这些数据不属于数据库,因为它是瞬态数据。 它是用户将构建的数据,并且在该用户处于活动状态时保留在应用程序范围内。 在某些情况下,您可能会将其保留在数据库中以供历史查看,但在大多数情况下,数据属于用户。

    所以,微软 ASP.NET 或 ASP.NET Core 会议。 有几个选项可以使用状态服务器,可以在进程中使用,可以使用数据库服务器,所有这些选项都有问题。 例如,进程内是单点故障; 您必须使用粘性会话负载平衡。 ASP.NET 状态服务器再次成为单点故障,并且您知道,它不可扩展。 数据库是一种选择,同样不是单点故障,因为您可以备份它,但在某些情况下,它可能是单点故障,但它很慢并且不可扩展。 那么,我们应该在这里做什么? 再次考虑使用 NCache 适用于 ASP.NET 和 ASP.NET Core 会话状态缓存。 它的工作方式是您插入我们的提供商。 这是一个无需更改代码的选项,但一旦插入 NCache 在您的应用程序内, NCache 成为您的主要会话存储。 而且,这里的想法是它将变得超快,因为它是基于 RAM 的。 它的可扩展性非常好,因为有多个服务器。 并且,在 NCache,一旦我们进入演示,我将介绍拓扑,您就会明白 NCache 在复制的帮助下有备份。 而且,会话数据是用户数据,对吗? 因此,这是您在任何情况下都不想丢失的数据,因为一旦丢失该数据,就会对用户产生影响,也会对业务产生影响。 因此,通过复制,数据也会得到备份。

    常见用途
    分布式缓存的常见用途

    因此,如果我必须列出您获得的好处,并且您知道,首先,您将由于内存访问而提高应用程序的性能。 您有多个服务器支持您的应用程序进行会话缓存,因此它具有很强的可扩展性。 最重要的是,它内置了高可用性和数据可靠性功能。 因此,万一发生任何情况,应用程序不会丢失会话数据或停机。 NCache 服务器宕机。 而且您不必再使用粘性会话负载平衡,因为 NCache 是一个共享实体。 请求可以发送到任何一个Web服务器; 它将始终能够找到数据 NCache 根据我们的协议。 因此,所有这一切都无需更改任何代码。

    这里的另一个用例是,如果您使用 ASP.NET Web 表单,您还可以捆绑视图状态。 这也是它要缓存视图状态的地方。 视图状态变重; 它消耗了大量的带宽。 它成为请求和响应数据包的一部分,并且始终会发送回浏览器。 它从未真正被使用过,但它存储在浏览器的客户端上。 当您回发时,视图状态就会返回到服务器端。 所以,与 NCache,我们允许您在服务器端缓存视图状态,因此您的有效负载不再附加繁重的视图状态。 这提高了性能。 不过,您知道,视图状态始终存储在浏览器端。 但是,如果您将其保留在需要它的服务器端,您就会知道改善整体应用程序行为。 它不会再消耗您的带宽,因为实际的请求和响应数据包不再附加大量的视图状态。 而且,我们也将非常安全,因为视图状态存储在服务器端,然后您可以在其之上设置一些加密和一些安全功能。 这也是一个无需更改代码的选项。 但它仅适用于旧版 Web 表单。 因此,如果您有 ASP.NET Web 表单应用程序,我建议您也应该考虑缓存视图状态。

    然后我们有 ASP.NET 和 ASP.NET core 响应缓存。 因此,对于静态页面或页面中静态的页面部分,您应该考虑缓存这些页面输出。 而在 ASP 中.NET core,我们有一个响应缓存选项可供您选择,这也是一个无需更改代码的选项。 除此之外,我们还有ASP.NET和ASP.NET Core SignalR Backplane。 因为在 Web 表单中,如果您使用 SignalR,则必须需要背板。 典型的背板,例如文件系统或数据库,可能会面临我们刚才讨论的所有可扩展性和性能挑战。 和 NCache,将是超快的、非常可扩展和可靠的,因为我们在幕后使用一个非常可靠的消息系统。 因此,这些是您可以利用 ASP.NET 或 ASP 的一些用例.NET Core 领域广泛应用,提供了卓越的解决方案。

  • 在我继续讨论扎克之前; 我认为有一个问题已发布。 是的。 所以,这个问题基本上是从默认情况下说和 DB 而来的。 所以,在你的中间——我想等到你完成它,但问题基本上是在问。 万一您能详细说明一下这个问题吗,先生?

    嗨罗恩,是 NCache 也适合数据发布目的,有需求,其中需求是将数据保存在内存缓存中,并选择同步数据库中的数据作为后台进程? 并且可以 NCache 默认情况下,处理内存缓存和数据库之间的同步机制吗?

    是的,这是一个非常好的问题。 对于高级案例,这始终是一个要求。 它以两种方式发挥作用。 一是您的应用程序现在使用的数据来自 NCache,但数据存在于数据库中。 因此,这是两个不同的源,需要同步才能进行读取和写入。 现在,如果连接到的应用程序 NCache 数据库是唯一负责更改内部数据的应用程序 NCache 和数据库,你现在,我们建议你使用read-through和write-through。 是的,这可以根据您的要求以异步或同步方式完成。 所以,真正会发生的是,每当你尝试从 NCache 并且它不存在于缓存中,并且您希望将其缓存,您将自动调用 read-through,并且它将根据您的代码从后端数据库中读取。 同样,如果数据来自数据库,并且需要在数据库中更新该数据,那么一旦更新缓存中的数据,在这种情况下,您将使用直写。 现在直写也可以是后写,这意味着数据必须在内部更新 NCache 并使用直写处理程序在数据库中。 如果您想要异步调用它,在这种情况下您可以使用 write-behind,这样它就可以在后台完成。 但话又说回来, NCache 你的应用程序对此负责,其中 NCache 正在调用您的代码,并且您的应用程序正在调用该代码。

    另一种情况可能是有其他应用程序可能直接更改数据库中的数据,而您的应用程序不知道这一点。 因此,在这种情况下,真正发生的是您需要使用我们的数据库同步功能。 您应该提出自定义依赖项; 你知道,SQL Server有链式通知。 我们有数据库依赖性。 因此,有很多同步功能,数据库中的任何更改都会被捕获 NCache 自动地。 并且,您可以再次使用通读,并且可以重新加载内部数据 NCache 以及。 所以,总而言之, NCache 你知道,可以处理这两种情况:要么是你的应用程序是唯一改变内部任何内容的实体 NCache 和数据库,或者在使用缓存的应用程序范围之外可以更改数据库的情况。

    因此,这两种情况都涵盖了,并且 NCache 对于这些情况,将为您提供 100 同步您知道的选项。 如果您谈论的是内存缓存,那么通常 ASP.NET 也具有内存缓存,对吧! 但如果你指的是 NCache 作为内存缓存,所以我已经回答了这个问题。 因此,如果还有其他问题,请告诉我,我们可以从那里解决。

  • 发布/订阅消息

    听起来不错。 我想我们可以继续前进。 当然。 好吧,接下来我将介绍 Pub-Sub 消息传递。 如你看到的, NCache 已经在应用程序之间共享了,对吧。 因此,它是一个可用于满足您的数据需求的实体。 您可以向其中添加数据; 您可以从中检索数据。 您可以获得性能和可扩展性优势 NCache。 您可以使用以下方法扩展此用例 NCache 也可以作为消息传递平台。 所以, NCache 消息传递功能非常强大 NCache。 它是一种异步、事件驱动的机制,多个应用程序可以驱动它们之间的消息传递要求或应用程序协调要求。 如果您需要多个应用程序相互通信,那么建立通信是一项挑战。 所以,你必须依赖一个集中的实体, NCache 是那个实体。 凭借其消息传递支持,它能够为您提供一个应用程序可以将数据或消息添加到的选项 NCache,并且这些消息可以传播到另一端的所有订阅者:您知道,需要这些消息的其他应用程序。

    常见用途
    分布式缓存的常见用途

    同样,这也可以是数据驱动的消息。 例如,任何数据被添加、更新或删除,您都会收到通知。 这些可能是一些自定义应用程序消息或数据驱动消息,因此它涵盖了内部填充任何数据的两个区域 NCache 并且您希望其他应用程序知道它,您可以通过它来驱动消息传递需求。 或者,它可以是自定义消息传递或应用程序驱动的消息传递,其中一个应用程序需要与另一应用程序通信。 它再次基于内存中可扩展模型。 您知道,它还具有可靠的复制选项。 它基于传统的 Pub-Sub 消息传递平台,其中我们有主题的概念,并且有消息代理的概念,其中多个应用程序连接到它。 因此,您可以定义发布者和订阅者应用程序。 发布者应用程序将您知道的消息发布到 NCache 然后将其传输给所有这些订户。 然后,订阅者还可以发送自己的消息。 NCache 充当这些不同应用程序之间的通信平台。

  • 全文搜索(分布式 Lucene)

    最后,我们还有另一个用例,那就是全文搜索。 因此,如果您有一个应用程序并且需要从以下位置驱动任何全文搜索要求: NCache,您可以考虑使用我们基于Lucine.NET的全文搜索功能。

    您通常知道,Lucene API 是独立的。 是的,在伙计们中,您可以将其扩展到多个服务器上。 NCache 也使您能够在内存中加载索引。 所以, NCache 会使用基于磁盘的索引,但它实际上允许您通过拥有多个服务器来扩展存储和请求处理能力。 因此,虽然它是基于磁盘的,但它仍然比数据库上的单一源更好。 因为,在事务负载很大的情况下,每个服务器将负责自己的一组索引请求。 因此,它将具有很强的可扩展性; 它也将非常可靠。 因为这是辅助存储,所以当涉及到场景索引时,持久性本身就是一个具有以下特性的功能: NCache。 您存储在其中的任何数据 NCache 也可以持久化在磁盘上,或者基于某些数据库提供者,它也可以持久化在某些数据库上。 但 Lucene 是唯一的功能 NCache 与 RAM 相比,使用磁盘是因为用例的性质要求数据是持久的。

    常见用途
    分布式缓存的常见用途

我希望这很简单。 这些是一些用例。 同样,在这些用例中,我们有很多功能; 任何类型的应用程序、应用程序中的任何特定要求都可以使用我们的对象缓存和会话缓存功能来完全处理。

只是一个简单的问题,罗恩。
有没有办法让我像在 MySQL 数据库中一样访问缓存中的数据? 我希望能够对我的缓存数据运行 SQL 查询。 我可以这样做吗?

当然。 NCache 首先支持SQL搜索和LINQ查询。 因此,如果您有能力编写一个可以简单连接到的应用程序 NCache,然后运行基于条件的搜索,因此这是您可以使用的简单选项,您可以在其中编写基于条件的搜索。 例如,您可以选择所有产品 产品.价格 大于10且小于100。或者您可以根据类别查找所有产品; 您可以根据区域查找客户。 因此,您可以提出基于 SQL 的搜索或基于 LINQ 的搜索,并且 NCache 会给你缓存中的数据。 所以这是一种选择。

另一个选择是我们有 LINQ Pad 集成。 因此,如果您只是想可视化数据,而无需进行应用程序开发,那么 LINQ Pad 是一种简单的方法,您可以在其中运行 LINQ 查询,然后通过运行 LINQ 查询来可视化数据。

然后,在我们即将发布的版本中,第三个选项是我们提供数据分析工具。 因此,我们将为您提供一种自动化的方式,一个监控工具,它将使您能够监控缓存中存在的数据。 它会从 GUI 中为您提供基于标准的搜索选项,所以这正在酝酿之中; 需求已完成,开发工作已完成。 我认为它将成为我们下一个版本的一部分。

绝对期待这一切。 完美的。 是的。 非常好。 我想我们现在已经很好了,罗恩。 我也会把几个问题留到最后,因为我们有一些有趣的问题,但是,是的,让我们继续吧。 当然。

自愈动态集群

因此,接下来我将介绍动态缓存集群,您知道,有关它的所有详细信息。 NCache 基于 TCP IP 的缓存集群协议。 这是我们自己实现的缓存集群。 为此,我们没有使用任何第三方或 Windows 集群。 它是 100% 专有协议。 它是用 .NET 编写的 .NET Core,所以,您知道这非常方便 --- TCP 套接字也是 .NET 和 .NET Core 基于。它是 100% 点对点架构,因此不存在单点故障。您可以在运行时添加或删除服务器。您不必停止缓存或与其连接的客户端应用程序。因此,您可以动态地对正在运行的缓存集群进行更改,并且, NCache 不会给你带来任何问题。 当您添加服务器时,客户端会在运行时收到通知,因此它们自动知道该服务器不再存在,您知道,现在是缓存集群的一部分,因此它们开始使用附加服务器,集群会自动调整。 同样,一旦删除服务器,其他服务器就会检测到该服务器已永久消失。 他们通知客户端,客户端停止使用丢失的服务器。 有一个连接故障转移支持,它也是建立在客户端上的,因此任何发生故障的服务器都将确保,您知道,集群将确保客户端意识到这一点,并且它们对连接进行故障转移,并开始使用幸存的服务器服务器。

动态缓存集群
动态缓存集群

因此,无论如何,集群中的任何更改都会传播到客户端。 客户端是智能的,他们总是知道缓存集群的状态。 因此,这可以确保不会出现停机或数据丢失,因为我们还内置了复制支持。 所以, NCache 具有高可用性,而且在复制的帮助下非常可靠。 它确保应用程序端 100% 的正常运行时间,没有任何应用程序中断,您可以继续使用 NCache.

缓存拓扑

接下来,我将讨论缓存拓扑。 这是我想要介绍的主要部分。 我们有四个选项可供选择。 第一个选项同样适用于较小的配置。 这些决定了您将如何配置缓存。

镜像缓存

因此,我们可以选择使用镜像缓存拓扑来配置缓存,其工作方式是最多只有两台服务器。 其中一台服务器将充当活动服务器,所有客户端都将连接到其中。 另一台服务器将充当被动服务器,充当备份,备份是通过 NCache。 这个拓扑,一旦你配置了它,它就会自动遵循架构。 基本上你知道,你不必定义它变得主动或变得被动,它是通过 NCache 自动地。 但是,一旦您这样做,真正发生的事情是,所有客户端应用程序都将连接到活动服务器,并且这就是它们将从中读取和写入数据的地方。 我们在主动服务器上拥有的任何数据都将通过异步镜像选项备份到被动服务器上。 因此,客户端更新活动并返回,因此客户端应用程序端不会产生复制成本。 客户端应用程序将超级快。 在幕后, NCache 应该更新备份。 而且,备份存在的一个重要原因是,如果一台服务器出现故障,备份服务器会自动更新为活动服务器,并且客户端会故障转移其连接并开始使用新活动的先前备份服务器。 而且,现在第一台服务器回来了,它将再次作为备份节点加入,而不是作为活动节点,因为我们在缓存集群中已经有一个活动节点。 所有这一切都是在您的应用程序中无缝完成的。 添加服务器或丢失服务器时,您无需进行任何干预。

镜像缓存
镜像缓存

这种拓扑非常适合读取和写入。 因此,对于参考和事务数据都有好处,但它存在容量问题,因为最多只有两台服务器,并且在这两台服务器中,在任何给定时间点只有一台服务器处于活动状态。 因此,对于较小的配置,具有可靠的数据,您知道缓存,这可能是选项之一。

复制缓存

继续,第二个选项是复制缓存。 这同样适用于较小的配置。 这使得所有服务器都处于活动状态,如您所见,服务器 1 和服务器 2 都处于活动状态。 客户端分为不同的服务器,因此,如果您有六个客户端,如图所示,其中一些将连接到服务器一,一些将连接到服务器2。对,这三个连接到服务器一,这些连接到服务器一服务器2。

复制缓存
复制缓存

这是自动完成的; 连接平衡是内置的 NCache。 所有服务器都处于活动状态,但每个服务器都有一个缓存副本。 因此,无论服务器 1 上有什么数据,服务器 2 上都会有一个副本,并且该副本是在同步更新的帮助下维护的。 因此,无论您在一台服务器上执行什么更新,这些更新都必须在同步调用中应用到其他服务器上,我们的意思是,客户端将等待整个操作完成。 如果任何服务器上的操作失败,则整个操作将回滚。 这就是我们在所有服务器上实现 100% 同步副本的方法。 现在,这在可靠性方面非常好,但是,如果您有一个读取密集型用例,因为您有更多的数据副本或来自不同服务器的更多副本,因此,随着您拥有更多的服务器,您的读取能力将会增加因为你有更多的服务器来处理请求。 但是,正如您刚刚注意到我们有同步更新,因此任何写入操作都必须应用于所有服务器。 因此,它适合较小的写入容量配置。 如果您有三到四台服务器,则必须应用相同的操作三到四次,这可能会对性能产生负面影响。 因此,对于参考数据场景和较小的配置,更推荐使用此拓扑。 它对于读取是可扩展的,对于写入来说不是很可扩展,但它非常可靠。 它带来了高可用性和数据可靠性,因为如果您丢失任何服务器,例如服务器 1 丢失,则不会发生数据丢失或停机,因为这些应用程序将进行故障转移并开始选择幸存的服务器,并且它们拥有缓存副本已经可用。

分区缓存和分区副本缓存

下一个选项是您可以选择,您知道,您可以使用分区缓存来配置缓存。 现在,分区和分区副本是最流行的拓扑。 分区缓存允许您在可用服务器节点之间分配数据。 例如,如果您有两台服务器,并且有一些数据,一半的数据将存储在服务器 1 上,一半的数据将存储在服务器 2 上。数据分发也是 NCache。 这不是您的应用程序执行的操作,而是由应用程序在运行时自动完成的。 有一个智能分布图和哈希算法,它决定哪些数据将发送到哪个服务器。

缓存拓扑 - 分区缓存
缓存拓扑 - 分区缓存

因此,基于此,您的应用程序将在缓存集群中的所有服务器之间均匀分配数据。 现在数据均匀分布,因此您的请求负载也将均匀分布。 因此,这将根据服务器的数量为您提供更多的读取和写入容量。 如果您有两台服务器,则两台服务器在一个团队中工作。 而且,如果您从两台增加到三台,您将有更多的服务器来处理您的读写请求。 因此,您可以获得更高的读取和写入可扩展性。 因此,以线性可扩展的方式,如果添加更多服务器,您将获得更大的可扩展性。 通过添加更多服务器,您还可以池化内存资源,因为数据是分布式的,因此您可以将所有服务器的存储池池化。 因此,如果您有两台服务器,那么您就有两台服务器的容量。 如果添加第三台或第四台服务器,您的容量就会增加那么多服务器。 因此,总体容量是池化的,因此当您在缓存集群中添加更多服务器时,您会获得线性增长。

非常适合读取,非常适合写入,非常适合参考和事务数据。 此拓扑的唯一缺点是它没有任何备份。 如果您丢失一台服务器,您就会丢失该分区。 因此,当发生这种情况时,您必须有一种方法从后端数据库构建该数据。 因此,如果您的主要目标是实现高性能,如果是一个以性能为中心的应用程序,并且您有能力返回数据库(通常是这种情况),那么您就不会依赖 NCache 为了实现高可用性和数据可靠性,与所有其他拓扑相比,这将为您提供最佳性能。

但是,如果您需要高可用性,而且您知道,数据可靠性要求也可以从 NCache,我有一个更好的拓扑,叫做Replica缓存的Partition。 现在,整体架构就像分区增强了副本一样,每个服务器都有数据分区,但每个服务器维护两个分区; 一个活动数据分区,其中连接客户端,以及另一个服务器的备份分区。 服务器 1 处于活动状态,其备份位于 2 上,服务器 2 处于活动状态,其备份位于 1 上。您可以选择同步或异步备份选项。 如果您选择异步副本分区,客户端将更新活动分区并返回该操作在客户端上完成,然后, NCache 将在幕后更新备份分区。 如果您选择同步,客户端应用程序将更新活动和备份作为事务操作。 不管怎样,你知道,同步显然更可靠,异步更快。 但无论哪种方式, NCache 您知道,能够以这样的方式处理数据可靠性:如果任何服务器出现故障,备份拓扑就会被激活,并且您不会看到任何数据丢失或应用程序停机。 正确的。

缓存拓扑 - 分区副本缓存
缓存拓扑 - 分区副本缓存

那么,让我快速向您展示这个包含 3 个服务器的拓扑。 因此,我们获得了高性能读取、高性能写入的所有好处,以及读取和写入的线性可扩展性。 除此之外,我们还获得了可扩展性、高可用性和数据可靠性等优势。 如果任何服务器出现故障,不会造成数据丢失或应用程序停机。

添加服务器时的数据平衡
添加服务器时的数据平衡

演示

我希望一切都清楚。 现在让我带您进入我们的演示环境,让我快速向您展示如何构建这些缓存拓扑,然后我还将向您展示如何快速测试缓存集群。 但与此同时,如果有任何问题,请告诉我。 快速提醒一下,我们展示的所有内容,我们还可以在您的环境中针对您的特定用例,通过手持会议和技术支持会议与您一起完成。 因此,我们在这里讨论的所有内容,甚至在网络研讨会后,我们很高兴作为一个团队能够与您一起讨论这一问题,以便能够向您展示它如何为您服务。

就问题而言,我确实在最后提出了一个问题。 其中之一是您的最爱之一。
关于使用 Hazelcast 进行应用程序缓存有很多讨论。 什么是 NCache 前提是 Hazelcast 没有?

好的。 首先,这更像是一场辩论。 NCache 实际上是用 .NET 编写的 .NET Core,所以首选平台 NCache 是Windows。 好的一点是 NCache 它可以在 .NET 上运行,也可以在 Windows 和 Linux 上运行。 因此,平台和兼容性支持 NCache 提供,没有其他产品能够实现这一目标。 所以,这是第一点,如果您考虑您计划使用的平台,那么它是更优选的选择。 另一个区别是,我鼓励每个人去查找,你知道,我们的 比较页面,你也会在那里找到非常好的材料。 但是,快速总结一下, NCache 对象缓存支持有很多功能,这是其他产品完全缺乏的。 例如,SQL 搜索,我们内部有一套精心设计的功能 NCache。 我们有缓存加载器和缓存刷新器。 这些是完全独特的功能 NCache。 我们的通读和通写处理程序能够运行 .NET 和 .NET Core 服务器端的代码,这是一个绝对独特的功能 NCache,这样的例子不胜枚举,对吧。 因此,您知道,您可以在服务器端自定义一些功能。 这些仅适用于 NCache 然后,从应用的角度来看,有很多其他产品所缺少的功能。 因此,我鼓励大家查看我们的比较页面。 有一些比较,逐个发布的功能比较,这将为您提供更详细的信息。

这绝对是我们最喜欢的提问方式,无论是网络研讨会还是技术解决方案,可能是 Hazlecast,也可能是 Scala,也可能是 Redis但非常感谢你,罗恩。 是的,我想我们可以走了。 请继续。 当然。

创建新的集群缓存

因此,让我通过创建新的集群缓存来快速演示该产品。 我们将其命名为测试缓存。 好吧,让我把这一点移到这里,请耐心等待。 好的。

添加服务器时的数据平衡
创建新的集群缓存

所以,我们刚刚解释了四种缓存拓扑。 我将选择副本缓存分区,因为这是最推荐的异步复制选项。 我将保留所有这些默认值。

添加服务器时的数据平衡
选择缓存拓扑

继续,我将向您展示使用 GUI 工具配置缓存是多么容易。 这是我们的 Web 管理器,但您也可以使用我们的 PowerShell cmdlet 实现所有操作,并且如果需要,您也可以自动执行此部署。 我将添加服务器一,其中 NCache 已安装。 然后我将添加服务器 2。所以,我的 2 个盒子 NCache 你知道,将设立 2 场演出的规模。 因此,我的想法是创建一个 2 节点缓存集群,每个节点使用 2 GB 的缓存大小。 因此,总共有 2 场演出,有 XNUMX 台服务器,其中 NCache 已安装。 然后,我将使用我的盒子连接到这个缓存集群。

添加服务器时的数据平衡
缓存分区和大小

TCP 参数。 一旦你这样做了,这就是你需要设置的端口。 保留默认值或指定防火墙不会影响该端口的任何端口。

添加服务器时的数据平衡
杂波 TCP 参数

如果您需要设置加密和压缩,这是屏幕。 我会保持原样。 选择下一步。 驱逐,如果你的缓存已满,你可以选择它。 一种选择是您的缓存将根本不接受任何写入操作。 它会给你一个错误,“缓存已满”。 另一种选择是,您设置驱逐,并根据这些算法,它将在运行时从缓存中删除一些项目。 因此,根据优先级、使用情况,可以删除最近最少或最频繁使用的项目,并且将从缓存中删除百分之五的项目。 我将在完成后启动此缓存并自动启动,以便每次我的服务器重新启动或 NCache 服务器重新启动后,它能够重新启动已停止的缓存。

启用驱逐
启用驱逐

我会选择完成,仅此而已。 设置缓存集群就是这么简单。 稍后,它将向我显示另一个视图,其中将启动该缓存,然后我将向您展示一些监视和管理详细信息。 我们有一些关于缓存配置的更详细的视频,所以如果有的话,有任何问题,请立即告诉我,或者我们也可以依赖这些视频。

我可以选择监控集群,这将打开另一个仪表板,这将允许我完全监控我的缓存。 它向我展示了一个完全连接的缓存集群、请求吞吐量计数器、延迟计数器,然后还有添加、获取、更新计数器。 同样,它显示了 CPU 和内存使用情况以及缓存已满的情况。

启用驱逐
NCache 显示器

我还有客户端仪表板以及报告视图,我们可以在其中看到服务器端和客户端仪表板。 目前没有任何应用程序连接到它,但有一种方法可以使用此测试压力按钮来模拟一些负载。 因此,我可以通过调用此测试压力来启动虚拟负载或缓存集群上的某些活动。 一旦我这样做,您就会看到一个客户端已连接,并且此拓扑要求我的数据将被分发,对吧。 因此,一些数据将存储在服务器 1 上,一些数据将存储在服务器 2 上。因此,该客户端均匀地使用两台服务器。 正如您所看到的,请求同时到达两台服务器,两台服务器上的缓存大小都在增长。

启用驱逐
压力测试

我们在两台服务器上也显示了活动分区和备份分区。 如果我快速向您展示延迟计数器,就我的操作而言,它是亚毫秒延迟,甚至是微秒延迟。 我可以看到客户端仪表板显示这些客户端统计信息,同样,我们有一个显示服务器端统计信息的报告。

罗恩,我有一个问题,实际上我们有几个问题,所以,其中之一是:
您对驱逐有何建议? 并且,如果至少有驱逐,那么下一个是,如果关闭驱逐,我们可以增加或减少缓存大小吗?

当然。所以,你知道,驱逐是需要根据你的用例来设置的,对吧。如果数据是你可以承受被驱逐的东西,对吧。如果您的缓存已满,驱逐本身将会删除一些数据。理想的情况是您永远不必这样做,并且您的缓存完全在容量范围内,对吧。因此,您为缓存提供了足够的大小或足够的内存,这样它就永远不会变满。但是,在这种情况下,你知道,它会达到满的程度。在这种情况下,如果您的数据始终可以从后端数据库重建,则建议打开逐出功能。例如,对于 ASP.NET 会话,我们不建议打开逐出功能,因为您将删除一些用户以为新用户腾出空间,并且所有用户都有重要的数据,对吧。因此,在任何给定情况下您都不想丢失这些数据。因此,对于这些情况,我们建议您增加缓存大小。以足够大的方式规划缓存大小,并在缓存已满的情况下 NCache 允许您在运行时更改缓存大小。 您可以对其进行编辑,没错,并在此基础上您可以增加这些设置,然后将这些设置保存在正在运行的缓存中。 所以,它是热适用的,并且会在运行时增加缓存大小。

在 NCahe 中更改运行时缓存大小
在运行时更改缓存大小 NCache.

还有其他问题吗? 看起来这已经回答了这个问题,我将在最后保存其中几个,以便您可以完成演示。 当然。 因此,回到我的演示环境,您知道,您可以添加客户端,例如,我可以将我的盒子添加为客户端,这是我可以从我的盒子运行的示例应用程序的快速概述。 例如,这也可以从 GitHub 获得,因此如果您搜索 NCache 在 GitHub 上,您会看到一些示例,我已经从那里提取了其中一个示例。 因此,您真正需要在应用程序中做的是包含这个 NuGet 包,它是 Alachisoft.NCache.SDK,如果你有兴趣 应用数据缓存,这是您应该考虑的示例。 并且,基于此,一旦添加,您就可以在应用程序中包含一些资源。

NCahe 示例应用程序
NCahe 示例应用程序 - 基本操作

这已经包括一些,你知道的,图书馆 NCache,作为这个新 NuGet 包的一部分。 然后,您可以使用以下命令包含此引用 Alachisoft.NCache。客户. 还添加 运行时缓存是的,基于此您可以定义一个缓存句柄,其中我们有很多方法。 例如,让我向您展示如何初始化缓存。 让我们实际深入了解一下。 耐心听我说。 我很难受了无论如何,由于某种原因,我无法真正进入其中,我认为盒子本身有问题。 但无论如何,API 非常直观。 让我向您展示我们的 PowerPoint。 该示例实际上正在使用它,我无法演示,因为我无法单步执行代码。 它不让我。

所以,这是一个缓存句柄,这是我想展示的一段代码,即 缓存管理器.GetCache 将允许您连接到缓存。 然后你可以打电话 缓存.获取 实际从缓存中获取任何数据。 同样,你可以调用 缓存。添加 or 缓存.AddAsync 要在缓存中添加任何记录,并像在 upsert 中那样插入,在缓存中添加和更新数据,类似地,您可以调用 缓存.删除.

应用数据缓存概述 (API)
应用数据缓存概述 (API)

所以这 样品 您可以下载并根据缓存运行。 您所要做的就是从应用程序端指向缓存。 有很多配置。 您可以指定缓存的名称和 IP 内联,也可以依赖 client.ncconf,此 NuGet 包包含在项目中。 因此,如果我快速向您展示一些资源,您会看到,实际上添加了很多文件,而这里的这个文件是一个允许您连接到缓存的文件。 所以,它已经能够连接到我的“democache”。 如果我运行它,它将针对我的缓存执行一些活动,并启动缓存操作。

同样,我还有另一个示例,它将提供更多选项,例如,有一个关于 在里面搜索 NCache, 正确的。 因此,我建议您在这里使用这个示例。 这是用于 SQL 搜索的。 它再次从 GitHub 下载,再次使用搜索,使用它有一个示例数据,然后使用 SQL 调用搜索。 而且,它在这里有很多功能,同样,样本也非常直观。 您可以插入项目,然后可以使用名称标签进行查询,您可以使用定义的索引或投影进行查询。

NCahe 示例应用程序
NCahe 示例应用程序 - SQL 搜索

不幸的是,由于环境问题,我无法深入了解这些方法,但这些方法再次可以作为使用的一个很好的参考点 NCache 来自任何需要在应用程序内使用缓存的应用程序,或者它们有在应用程序内搜索的用例。

客户端缓存

还有一个问题是关于 客户端缓存,因此该拓扑也是一个无需更改代码的选项。 您从数据库中缓存的任何数据 NCache,您可以通过使用客户端缓存来进一步缓存它。 它是另一个缓存之上的缓存。 无需更改任何代码即可工作。 它是具有集群缓存的同步缓存,因此不存在数据一致性问题。 同步是通过以下方式完成的 NCache。 在一个客户端缓存上进行的任何更新都必须传播到集群缓存,然后将其传播到其他客户端缓存,并在缓存中管理所有同步。 对于没有大量写入的参考数据场景,这是一个非常推荐的选择。

广域网复制

同样, NCache 也有一个 广域网复制。 我们有主动-被动和主动-主动拓扑。 因此,您的整个缓存数据可以通过我们的桥接缓存从一个数据中心复制到另一个数据中心。 Bridge 本身在主动被动服务器上进行备份,因此您拥有源缓存和目标缓存、单向复制或数据从一个数据中心到另一个数据中心的东向西迁移,用于灾难恢复场景或您知道,从东到西的迁移,或者您需要来自一个应用程序的数据并且需要将其用于目标应用程序的情况。 因此,您可以将整个缓存数据从一个数据中心传输到另一个数据中心。

双活拓扑
双活拓扑

另一个选项是主动-主动。 在这种情况下,我们的两个站点都处于活动状态,因此站点一正在将数据传输到站点二,站点二正在将数据传输到站点一。 同样,它是一个无需更改代码的选项。 这只是一个配置。 设置桥接后,您可以将两个缓存连接在一起并 NCache 接管,并开始在这些缓存之间复制数据。

这也扩展到多主动-主动拓扑,因此,它不需要只有两个站点,它可以是三个、四个或五个站点,其中所有站点都在相互传输数据。 所以, NCache您知道,它实际上能够同时同步所有站点的数据。 顺便说一句,这是异步完成的,因此复制成本不会再在应用程序端或用户端产生。 这是在应用程序上完成的。 您在这里和这里都有连接的客户端应用程序。 他们没有看到由于 WAN 复制而导致的任何性能下降。 这是在幕后完成的 NCache。 如果有任何问题请告诉我。 现在让我们总结一下演示和功能集。 扎克,如果有任何问题请告诉我。

是的,我们确实有一对。 大家知道,我非常感谢你们的耐心,所以如果你们在整个演示过程中一直有疑问,这也是提出任何其他问题的好时机。 那么,让我们从一个开始吧。
如何确认您的缓存是否运行在健康状态? 我们会收到任何类型的通知等吗? 比如我们如何知道是否存在问题?

当然。 我们有 监控和管理工具。 因此,一件事可能是您可以目视检查并看到集群的运行状况。 你看,CPU 使用率,RAM 使用率。 如果您知道您的基线,您知道您的应用程序生成了多少请求,以及典型利用率是多少 NCache 基于这些计数器,您可以使用我们的监控和管理仪表板进行直观检查。 然后,我们对任何情况都有警报,例如,您启动缓存、停止缓存、节点加入、离开、缓存大小已满,或者集群处于不健康状态,例如脑裂,我们有警报,我们将其记录到 Windows 事件日志中。 然后您还可以设置电子邮件提醒 NCache,它也可以生成一封电子邮件给您。 所以,这将是一种主动监控,一些警报 NCache,其中 NCache 会发出警报,您可以据此采取行动。 然后,我们以性能计数器日志以及缓存日志的形式捕获历史数据。 对于那些您不知道出了什么问题并且发现了一些问题的情况 NCache,我们可以来参与,我们可以回顾 NCache 日志,并在这种情况下对缓存运行状况进行评估。 因此,在这方面有很多你们知道的途径可供我们探索。

听起来不错。 另一个问题是:
最新的 .NET 版本是什么 NCache 目前为客户提供支持吗?

好的。 通常,我们倾向于最新的 .NET framework 版, .NET Core。 目前支持 .NET 6,这是先决条件 NCache。 您需要将 .NET 6 作为必备组件 NCache 服务器。 但是,你知道,你的应用程序可以在任何地方, .NET framework,我认为从3.5开始4.0、4.5,甚至4.7、4.8。 您知道,您的应用程序可以位于任何 .NET 或 .NET Core 框架。 这只是服务器端的限制。 而且,一旦测试了较新的框架兼容性,例如 .NET 7,我们就已经在我们的 QA 实验室中对其进行了测试。 因此,一旦我们签署了该协议,我们也将发布对此的官方支持。

精彩的。 另一个问题是:
您认为我的缓存服务器之间的集群缓存的安全数量是多少? 我可以在我的缓存服务器之间创建 15 个集群缓存吗?

好的。 首先, NCache 不会对您可以配置的缓存数量施加任何限制。 事实上,如果你看看我的演示环境,我配置了两个缓存。 因此,您可以根据需要创建任意数量的内容。 但是,有一个技术建议或与容量相关的建议,我们通常建议在生产环境中不要超过四到五个缓存。 因为每个缓存都是一个独立的缓存集群。 它实际上会消耗所有存储、集群、通信资源,还有集群管理开销。 因此,随着缓存数量的增加,您实际上会在该环境中或该环境中引入容量问题。 因此,如果可能的话,我们建议将其保持在四到五个以内。 在必须拥有多个缓存的情况下,您可以将其扩展到 10 个。但是,就像我说的,这又是一个建议。 没有实际的限制来强制执行这一点。 这是我们的通用建议。

好的。 让我再扔一个,因为我知道我们已经结束了会议,而且我知道人们在码头上还有其他东西。
能够 NCache 提供灾难恢复复制吗?

是的,它确实。 我刚才讨论的 WAN 复制功能,最后一个拓扑,涵盖了 DR、灾难恢复。 站点可以与活动站点的数据一起传输,因此您将拥有一个完全备份的灾难恢复站点。 只需要在应用端进行切换即可。 由于所有数据都已备份,因此在一个数据中心完全宕机或需要您自行宕机维护的情况下,不会造成数据丢失。

好的。 我认为我们已经尽可能多地完成了任务。 女士们、先生们,请注意,我们在这些会议之外也可以提供服务。 如果您已经是 NCache. 如果您不熟悉 NCache,我们很乐意为您提供试用服务,并举办上手课程,引导您了解这在集成应用程序中的工作原理,但最重要的是,请注意,您可以随时与我们联系任何疑问 NCache,或者甚至使用该产品以及如果您需要任何帮助。 我们即将推出很多新内容,也会发布新版本,所以,请保持关注,我们很快就会举办更多此类网络研讨会。

为罗恩鼓掌。 我真的很感谢您今天抽出时间参加会议,我期待着我们的下一次会议。 谢谢大家。 谢谢你,扎克。 当然。 好吧,大家。 祝大家度过愉快的一天,我们期待在下一次网络研讨会上见到您。 只是免责声明,在本次网络研讨会结束后,我们将在所有工作完成并除尘后将网络研讨会的录音上传到我们的网站。 因此,如果您没有机会回答任何问题,如果您想重新审视我们提出的任何观点,请随时再次访问我们的网站,并查看录制的网络研讨会。

那好吧。 向大家致敬。 你有一个很好的。 感谢你们。 再见。

接下来做什么?

 

联系我们

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