案例分析 - NCache 提高任务管理应用程序的性能

标题图像

轻松迁移到之后 NCache,它开始像胶水一样将我们的应用程序粘合在一起。 它提供的各种功能是一个真正的好处,尤其是我们过度使用的队列。

企业应用支持分析师
 

国家或地区:
欧洲

行业:
军事防御

公司简介:
这是一个欧洲国防部,致力于在多个国家之间建立联系,使它们能够就安全项目进行咨询和合作,同时协调国际危机管理活动。

NCache 允许该组织保持高可用性并加速其任务管理应用程序的性能。

下载PDF
 

介绍

此类组织需要高可用性、数据一致性和轻松的任务管理。 该组织特别设计了一个跟踪应用程序,供其员工使用来管理不同部门之间的信息和任务。 员工登录应用程序并输入日常任务。 各相关部门可以对员工进行监督并检查其任务状态。 该公司之前使用过 Redis 用于他们的开发过程,但在将其部署到服务器时面临限制。 此外,作为国际舞台上和平的主要贡献者,他们希望增强其跟踪应用程序,以便实时收到发生的任何变化的通知。

 

应用痛点

它们需要良好的缓存机制。 他们评价 Redis。 在早期阶段,他们发现 Redis 未满足他们的数据结构要求,这意味着他们无法部署 Redis 在他们的总部。 此外,迁移到 Redis 并不像人们想象的那么容易 Redis 没有满足组织的技术要求。 Redis 在 Linux 上用 C++ 开发。 而且,Windows 上并未正式支持它。 由于组织的应用程序是使用 .NET 6 构建的,因此集成非 .NET 本机的产品可能会导致问题。

 

创新中心 NCache 适合他们的解决方案吗?

NCache 为他们的单层应用程序及其高级功能提供了灵活且可扩展的内存解决方案。 他们正在体验更快的数据更改通知来处理和处理它。

这是一个轻松的迁移 Redis 至 NCache 这非常简单。

企业应用支持分析师 团队。

无论他们的应用程序似乎缺乏什么, NCache 提供了最佳解决方案作为修复。

计划外的更改或计划内的维护不会影响应用程序的性能,因为它使用复制的缓存拓扑 - 如果一个节点发生故障,另一个节点会弥补它。 组织的数据结构要求通过以下方式满足 NCache 队列非常直观且易于实现。 来自 SignalR backplane 缓存加载器、后备源提供者(Read-Through),以及 NCache 锁; 跟踪应用程序受益于所有这些强大的功能 NCache.

此外, NCache 是一个 .NET 本机分布式缓存解决方案,可以部署在 Linux 和 Windows 上。 这有助于他们的部署,因为 Redis 仅支持Linux。 大多数 .NET 应用程序现在都在 Windows 上运行 .NET Core 应用程序可以在 Windows 和 Linux 上运行。 因此,确保其分布式缓存也为这两种操作系统提供支持变得至关重要。 和 NCache 作为顶级缓存解决方案之一,提供了这种支持。

Alachisoft 产品名称:
NCache

满足客户需求:

  • 轻松简单的迁移/部署
  • 更好的数据结构
  • 可扩展性
  • 减少数据库访问
 

应用程序架构概述和部署 NCache

应用架构主要包含以下几个组件:

  • 前端:
    前端采用SVELTE JS框架设计。
  • 逻辑层:
    逻辑层使用Rest API与数据库交互。 它用 .NET Core 6 Web API,具有 SignalR 通知中心,并附带用于 SearchService 和协作服务的 .NET API。
  • 后端:
    后端基于SQL Server作为数据存储。 数据源包括 SQL Server、ADFS、Sharepoint 和文档管理服务器。 支持源 (NCache Read-Through)在这一层中实现,它使用 .NET 6 NCache 5.3 SP1。

为了更仔细地了解该应用程序,Web API 包含操作服务、通知中心以及 SignalR。 NCache 充当应用程序不同部分之间的中心枢纽。用户使用ADFS(Active Directory联合服务)登录,转到前端并调用Web API。 Web API 负责创建此操作并将其放入队列中 NCache。 Action Service 执行多种操作,例如轮询队列、处理任务对象等。

如果操作服务内存在某个项目,它将对其进行处理。 作为处理的一部分,操作服务还通过通知中心发送通知。 该动作服务改变数据对象“Tasker”的状态——在数据状态改变的情况下,可以添加新数据或更新先前添加的数据。 这有助于用户分析处理情况,并向受该更改影响的所有相关用户发送通知。 该应用程序还具有协作服务,可使用 SharePoint 管理任务。

架构图使用 NCache
图 1 - 使用的架构图 NCache

目前,该应用程序使用 2 个负载平衡服务器来托管前端、逻辑层​​和 NCache。 此外,还有 1 台数据库服务器来支持服务器。 它们有 1 个通用缓存,用于存储队列,同时还缓存一些参考数据。 它们还有另外 2 个用于存储静态数据的缓存,即“任务”。 通用缓存和静态缓存都实现了后备源(Read-Through)和加载器。

 

SignalR Backplane

该组织通过以下方式扩展了应用程序的使用 SignalR backplane。 当多个用户使用 Web 应用程序时,他们会等待任务执行者对象的反馈。 通过使用 SignalR 的通知中心向他们提供反馈。 这样就无需每次都刷新网页来请求新消息。

可以使用 SignalR 创建实时 ASP.NET Web 应用程序,一旦触发更新,服务器就会向所有登录用户广播更新。 通过这样做,可以减少用户更新请求的响应时间。 NCache 通过向 SignalR 提供程序提供扩展来提供对 SignalR 的支持。 提供商拥有所有与应用程序相关的 Web 服务器的记录。

 

数据一致性的队列数据结构

他们过度使用了 Queue 提供的数据结构 NCache。 队列存储在通用缓存中,以维护运行时正在处理的信息。 Web API 将新项目添加到队列中。 然后操作服务轮询该队列,如果发现新项目,则执行所需的过程。 整个队列存储在 NCache。 每当他们必须获取一个项目时,他们不必遍历整个队列,因为这不仅是一个缓慢的过程,而且是一个昂贵的过程。 NCache 使用引用来获取不会影响性能的所需项目。

Queue 数据结构附带不同的 API,例如 GetQueue,它借助 Contains 方法检查缓存中是否存在某个项目。 类似地,从队列中获取最顶层的项目,将整个源队列复制到一维数组,从队列中删除项目,注册事件(基于键和数据结构),锁定和解锁队列以实现数据一致性 - 所有这些还有其他功能吗 NCache 提供队列数据结构。

 

锁定队列以确保数据完整性

该组织还引入了使用由 NCache。 例如,每当用户读取或写入队列时,他们可能会使用 Lock API 锁定队列大约 20 秒,以便维护数据完整性。 如果所需的队列空闲并准备好再次使用,则用户可以使用 Unlock API 将其解锁。 当我们谈论并发更新时, NCache的锁定功能已准备好提供数据完整性和数据一致性。

关于 Alachisoft:
Alachisoft 提供流行的高性能内存分布式缓存,称为 NCache. NCache 是一种在生产环境中运行的开源中间件,可提高 .NET Web 应用程序、SOA 服务应用程序和一般高流量服务器应用程序的性能和可扩展性。 自 2005 年以来, NCache 在世界各地,特别是在美国、英国和西欧,拥有数百名客户的良好业绩记录。

您可以下载 30 天的免费试用版 NCache 止 此处.

Alachisoft
公司总部
12005 Ford Road, Suite 520
达拉斯,德克萨斯州75234

US: +1 (214) 764-6933
UK: +44 207 993-8327

sales@alachisoft.com
support@alachisoft.com

 

支持源(通读缓存)

他们使用在应用程序的常规以及静态缓存存储中实现的读取提供程序 - 从数据源获取数据,以防数据不存在于缓存中。 这最大限度地减少了数据库的额外网络访问。 NCache 提供一个 Read-Through 提供程序,使用户能够与数据源进行通信。 在直读缓存中,如果发生缓存未命中, NCache 将联系提供者以在 get 调用后面加载数据。

Read-Through 提供程序使用以下配置 IReadThruProvider 对于.NET。 如果在缓存中找不到某个项目,则方法 从源加载从源加载数据类型 提供从定义的数据源加载对象或数据类型的逻辑。

 

用于预填充缓存的缓存加载器

NCache 提供了另一个强大的功能, 缓存启动加载器 他们一直在跟踪应用程序中使用。 应用程序在启动时预先填充缓存中的数据。 这不仅节省了网络成本,而且使数据具有高可用性。 缓存加载器的目的是避免延迟,即使在初始请求时也是如此,但由于缓存加载器在另一个服务上运行,因此它在技术上是异步的。 跟踪应用程序始终在启动时将最常用的数据保留在缓存中。 此功能有助于提高应用程序性能以及处理请求吞吐量。

 

继续前进 NCache

该组织受益于 NCache 如上所述,在许多领域。 作为未来发展的一部分,他们计划使用 NCache的组功能以及事件通知和 Pub/Sub 消息传递,因为操作服务每次都必须轮询以检查更新。 NCache 能够在不缺乏绩效的情况下为他们管理这一切。

接下来做什么?

联系我们

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