사례 연구 – NCache 작업 관리 애플리케이션의 성능 향상

헤더 이미지

쉽게 마이그레이션 한 후 NCache, 이는 애플리케이션을 하나로 묶는 접착제처럼 작동하기 시작했습니다. 그리고 그것이 제공하는 다양한 기능은 정말 보너스였습니다. 특히 대기열은 우리가 과도하게 사용해 왔습니다.

엔터프라이즈 애플리케이션 지원 분석가
 

국가 혹은 지역:
유럽

업종 :
군사 방어

회사 프로필:
이는 여러 국가 간의 연결을 구축하여 국제 위기 관리 활동을 조정하는 동시에 보안 프로젝트에 대해 협의하고 협력할 수 있도록 하는 유럽 국방 부서입니다.

NCache 이를 통해 조직은 고가용성을 유지하고 작업 관리 응용 프로그램의 성능을 가속화할 수 있습니다.

PDF 다운로드
 

개요

이러한 조직은 고가용성, 데이터 일관성 및 손쉬운 작업 관리를 요구합니다. 특히 이 조직은 직원들이 서로 다른 부서 간의 정보와 작업을 관리하는 데 사용할 수 있는 추적 응용 프로그램을 설계했습니다. 직원은 애플리케이션에 로그인하고 일상 업무를 입력합니다. 각 관련 부서에서는 직원을 감독하고 업무현황을 확인할 수 있습니다. 기존에 이용했던 회사 Redis 개발 프로세스를 위해 노력했지만 서버에 배포하는 데에는 한계가 있었습니다. 또한, 국제 무대에서 평화에 선도적으로 기여하는 기업으로서 실시간으로 발생하는 모든 변경 사항에 대한 알림을 받을 수 있도록 추적 애플리케이션을 개선하기를 원했습니다.

 

애플리케이션 문제점

좋은 캐싱 메커니즘이 필요합니다. 그들은 평가했다 Redis. 초기 단계에서 그들은 다음과 같은 사실을 알게 되었습니다. Redis 데이터 구조 요구 사항을 충족하지 않아 배포할 수 없었습니다. Redis 본사에서. 또한 다음으로 마이그레이션 Redis 생각보다 쉽지는 않았지만 Redis 조직의 기술 요구 사항을 충족하지 못했습니다. Redis Linux에서 C++로 개발되었습니다. 그리고 Windows에서는 공식적으로 지원되지 않습니다. 조직의 애플리케이션이 .NET 6을 사용하여 구축되었으므로 .NET 네이티브가 아닌 제품을 통합하면 문제가 발생할 수 있습니다.

 

방법 NCache 그들의 솔루션에 적합합니까?

NCache 고급 기능과 함께 단일 계층 애플리케이션을 위한 유연하고 확장 가능한 인메모리 솔루션을 제공합니다. 그들은 데이터 변경 알림을 처리하고 작업하는 데 더 빠른 속도를 경험하고 있습니다.

이전은 쉬웠어요 Redis 에 NCache 그리고 그것은 매우 간단했습니다.

말했다 엔터프라이즈 애플리케이션 지원 분석가 팀의.

그들의 적용이 부족해 보이는 것이 무엇이든, NCache 최적의 솔루션을 Fix로 제공했습니다.

복제된 캐시 토폴로지를 사용하므로 계획되지 않은 변경이나 계획된 유지 관리는 애플리케이션의 성능에 영향을 미치지 않습니다. 노드가 다운되면 다른 노드가 이를 보완합니다. 조직의 데이터 구조 요구 사항은 다음에 의해 충족되었습니다. NCache 매우 직관적이고 구현하기 쉬운 대기열. 로부터 SignalR backplane 캐시 로더, 백업 소스 공급자(Read-Through) 및 NCache 자물쇠; 추적 애플리케이션은 다음과 같은 강력한 기능을 모두 활용합니다. NCache.

그 위에, NCache Windows는 물론 Linux에도 배포할 수 있는 .NET 기본 분산 캐싱 솔루션입니다. 이는 배포에 도움이 되었습니다. Redis 리눅스만 지원합니다. 대부분의 .NET 애플리케이션은 Windows에서 실행되며 현재는 .NET Core 응용 프로그램은 Windows와 Linux 모두에서 실행될 수 있습니다. 따라서 분산 캐시가 두 운영 체제 모두에 대한 지원도 제공하는지 확인하는 것이 필수적입니다. 그리고 NCache 최고의 캐싱 솔루션 중 하나로 이러한 지원을 제공합니다.

Alachisoft 생성물:
NCache

고객 요구 충족:

  • 쉽고 간단한 마이그레이션/배포
  • 더 나은 데이터 구조
  • 확장성
  • 데이터베이스 이동 감소
 

애플리케이션 아키텍처 개요 및 배포 NCache

애플리케이션 아키텍처는 주로 다음 구성 요소로 구성됩니다.

  • 프런트엔드:
    프런트 엔드는 SVELTE JS 프레임을 사용하여 설계되었습니다.
  • 논리 레이어:
    논리 계층은 Rest API를 사용하여 데이터베이스와 상호 작용합니다. 그것은 사용한다 .NET Core 6개의 웹 API, SignalR 알림 허브가 있고 SearchService 및 공동 작업 서비스를 위한 .NET API가 함께 제공됩니다.
  • 백엔드:
    백엔드는 SQL Server를 데이터 저장소로 기반으로 합니다. 데이터 소스에는 SQL Server, ADFS, Sharepoint 및 Document Management Server가 포함됩니다. 백업 소스(NCache Read-Through)는 .NET 6을 사용하는 이 계층에서 구현됩니다. NCache 5.3 SP1.

애플리케이션을 자세히 살펴보기 위해 Web API에는 SignalR과 함께 작업 서비스인 알림 허브가 포함되어 있습니다. NCache 애플리케이션의 여러 부분 사이에서 중앙 허브 역할을 합니다. 사용자는 ADFS(Active Directory Federation Services)를 사용하여 로그인하고 프런트 엔드로 이동하여 웹 API를 호출합니다. 웹 API는 이 작업을 생성하고 이를 내부 대기열에 넣는 역할을 담당합니다. NCache. 작업 서비스는 대기열 폴링, 작업 담당자 개체 처리 등과 같은 여러 작업을 수행합니다.

Action Service 내부에 항목이 있으면 이를 처리합니다. 처리의 일부로 작업 서비스는 알림 허브를 통해 알림도 보냅니다. 이 작업 서비스는 새 데이터가 추가되거나 이전에 추가된 데이터가 업데이트되는 데이터 상태가 변경되는 경우 데이터 개체 "Tasker"의 상태를 변경합니다. 이는 사용자가 처리를 분석하는 데 도움이 되며 해당 변경의 영향을 받는 모든 관련 사용자에게 알림을 보냅니다. 이 애플리케이션에는 SharePoint를 사용하여 작업을 관리하는 공동 작업 서비스도 있습니다.

다음을 사용한 아키텍처 다이어그램 NCache
그림 1 - 다음을 사용한 아키텍처 다이어그램 NCache

현재 애플리케이션은 프런트엔드, 로직 레이어 및 NCache. 또한 서버를 지원하는 데이터베이스 서버가 1개 있습니다. 여기에는 일부 참조 데이터도 캐시하는 대기열을 저장하는 1개의 일반 캐시가 있습니다. 또한 정적 데이터(예: "작업")를 저장하기 위한 2개의 다른 캐시도 있습니다. 일반 캐시와 정적 캐시에는 모두 지원 소스(Read-Through)와 로더가 구현되어 있습니다.

 

SignalR Backplane

조직은 다음을 통해 애플리케이션의 사용을 확장합니다. SignalR backplane. 여러 사용자가 웹 앱을 사용하는 경우 작업 수행자 개체에 대한 피드백을 기다립니다. 피드백은 SignalR을 사용하는 알림 허브를 통해 제공됩니다. 이로 인해 새 메시지를 요청할 때마다 웹페이지를 새로 고칠 필요가 없어졌습니다.

업데이트가 트리거되는 즉시 서버가 로그인한 모든 사용자에게 업데이트를 브로드캐스트하는 SignalR을 사용하여 실시간 ASP.NET 웹 애플리케이션을 생성할 수 있습니다. 이렇게 하면 사용자 업데이트 요청에 대한 응답 시간이 단축됩니다. NCache SignalR 공급자에 대한 확장을 제공하여 SignalR에 대한 지원을 제공합니다. 공급자는 응용 프로그램과 관련된 모든 웹 서버에 대한 기록을 가지고 있습니다.

 

일관된 데이터를 위한 대기열 데이터 구조

그들은 에서 제공하는 Queue 데이터 구조를 과도하게 사용하고 있습니다. NCache. 큐는 런타임에 처리되는 정보를 유지하기 위해 일반 캐시에 저장됩니다. Web API는 대기열에 새 항목을 추가합니다. 그런 다음 작업 서비스는 해당 대기열을 폴링하고 새 항목이 발견되면 필요한 프로세스를 수행합니다. 전체 대기열은 다음 위치에 저장됩니다. NCache. 항목을 가져와야 할 때마다 전체 대기열을 순회할 필요가 없습니다. 이는 느리고 비용이 많이 드는 프로세스이기 때문입니다. NCache 성능을 저하시키지 않는 필수 항목을 얻기 위해 참조를 사용합니다.

Queue 데이터 구조에는 Contains 메서드를 사용하여 항목이 캐시에 존재하는지 여부를 확인하는 GetQueue와 같은 다양한 API가 함께 제공됩니다. 마찬가지로 큐에서 최상위 항목 가져오기, 전체 소스 큐를 XNUMX차원 배열에 복사, 큐에서 항목 제거, 이벤트 등록(키 기반 및 데이터 구조), 데이터 일관성을 위해 큐 잠금 및 잠금 해제 등 모든 작업이 수행됩니다. 다른 기능은 NCache Queue 데이터 구조를 제공합니다.

 

데이터 무결성을 위한 대기열 잠금

조직은 또한 다음에서 제공하는 잠금 기능을 사용합니다. NCache. 예를 들어, 사용자가 큐를 읽거나 쓸 때마다 큐를 잠글 수 있습니다. 예를 들어 데이터 무결성이 유지되도록 Lock API를 사용하여 약 20초 동안이라고 가정하겠습니다. 필요한 대기열이 사용 가능하고 다시 사용할 준비가 되면 사용자는 Unlock API를 사용하여 잠금을 해제합니다. 동시 업데이트에 관해 이야기할 때, NCache의 잠금 기능은 데이터 무결성과 데이터 일관성을 제공하고 제공할 준비가 되어 있습니다.

소개 Alachisoft:
Alachisoft 라고 하는 널리 사용되는 고성능 인메모리 분산 캐시를 제공합니다. NCache. NCache 프로덕션 환경에서 실행되고 .NET 웹 앱, SOA 서비스 앱 및 일반 트래픽이 많은 서버 앱의 성능과 확장성을 향상시키는 오픈 소스 미들웨어입니다. 2005년부터, NCache 전 세계, 특히 미국, 영국 및 서유럽에서 수백 명의 고객과 함께 입증된 실적을 보유하고 있습니다.

30일 동안 완전히 작동하는 무료 평가판을 다운로드할 수 있습니다. NCache 에 여기에서 지금 확인해 보세요..

Alachisoft
본사
12005 Ford Road, Suite 520
Dallas, TX 75234

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

sales@alachisoft.com
support@alachisoft.com

 

백업 소스(읽기 캐싱)

그들은 애플리케이션의 일반 기능과 정적 캐시 저장소에 구현된 Read-Through 공급자를 사용하여 데이터가 캐시에 없는 경우 데이터 소스에서 데이터를 가져왔습니다. 이렇게 하면 데이터베이스에 대한 추가 네트워크 이동이 최소화됩니다. NCache 사용자가 데이터 소스와 통신할 수 있도록 하는 Read-Through 공급자를 제공합니다. Read-Through Caching에서는 캐시 누락이 발생한 경우 NCache get 호출 뒤에 데이터를 로드하기 위해 공급자에게 연락합니다.

Read-Through 공급자는 다음을 사용하여 구성됩니다. IReadThruProvider .NET용. 캐시에서 항목을 찾을 수 없는 경우 메서드는 소스에서 로드로드 데이터 유형에서 소스 정의된 데이터 소스에서 개체 또는 데이터 유형을 로드하는 논리를 제공합니다.

 

캐시를 미리 채우는 캐시 로더

NCache 또 다른 강력한 기능인 캐시 시작 로더 추적 애플리케이션에서 사용해 온 정보입니다. 애플리케이션은 시작 시 캐시의 데이터를 미리 채웁니다. 이는 네트워크 비용을 절약할 뿐만 아니라 데이터의 가용성을 높여줍니다. 캐시 로더의 목적은 최초 요청 시에도 레이턴시를 방지하는 것이지만, 캐시 로더는 다른 서비스에서 실행되기 때문에 기술적으로는 비동기적입니다. 추적 응용 프로그램은 시작 시 항상 가장 자주 사용되는 데이터를 캐시에 보관합니다. 이 기능은 요청 처리량 처리와 함께 애플리케이션 성능을 향상시키는 데 도움이 되었습니다.

 

앞으로 나아가기 NCache

조직은 이익을 얻습니다. NCache 위에서 설명한 것처럼 다양한 영역에서. 향후 성장의 일환으로 그들은 다음을 사용할 계획입니다. NCache이벤트 알림 및 Pub/Sub 메시징과 함께 의 그룹 기능은 작업 서비스가 업데이트를 확인하기 위해 매번 폴링해야 하기 때문입니다. NCache 성능 저하 없이 이 모든 것을 관리할 수 있습니다.

다음에 무엇을할지?

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.