Fallstudie - NCache Steigern Sie die Leistung einer Task-Management-Anwendung

Header-Bild

Nach einer einfachen Migration zu NCache, es hat begonnen, wie der Klebstoff zu wirken, der unsere Anwendung zusammenhält. Und die verschiedenen Funktionen, die es bietet, waren ein echter Bonus, insbesondere die Warteschlangen, die wir übermäßig genutzt haben.

Support-Analyst für Unternehmensanwendungen
 

Land oder Region:
Europa

Industrie:
Military Defense

Firmenprofil:
Hierbei handelt es sich um ein europäisches Verteidigungsministerium, dessen Aufgabe es ist, eine Verbindung zwischen mehreren Nationen herzustellen und ihnen die Möglichkeit zu geben, sich bei Sicherheitsprojekten zu beraten und zusammenzuarbeiten und gleichzeitig internationale Krisenmanagementaktivitäten zu koordinieren.

NCache ermöglicht es dieser Organisation, eine hohe Verfügbarkeit aufrechtzuerhalten und die Leistung ihrer Aufgabenverwaltungsanwendung zu beschleunigen.

PDF Downloaden
 

Einleitung

Solche Organisationen verlangen hohe Verfügbarkeit, Datenkonsistenz und einfache Aufgabenverwaltung. Insbesondere diese Organisation hat eine Tracking-Anwendung entwickelt, mit der ihre Mitarbeiter Informationen und Aufgaben zwischen verschiedenen Abteilungen verwalten können. Die Mitarbeiter loggen sich in die Anwendung ein und geben ihre täglichen Aufgaben ein. Jede zuständige Abteilung kann Mitarbeiter betreuen und deren Aufgabenstatus überprüfen. Die Firma zuvor verwendet Redis für ihre Entwicklungsprozesse, sah sich jedoch mit Einschränkungen bei der Bereitstellung auf ihren Servern konfrontiert. Darüber hinaus wollten sie, da sie einen wichtigen Beitrag zum Frieden auf internationaler Ebene leisten, ihre Tracking-Anwendung verbessern, um in Echtzeit über alle Änderungen informiert zu werden.

 

Anwendungsschmerzpunkte

Sie erfordern einen guten Caching-Mechanismus. Sie haben ausgewertet Redis. Das haben sie schon früh herausgefunden Redis Ihre Datenstrukturanforderungen wurden nicht erfüllt, was bedeutete, dass sie nicht bereitgestellt werden konnten Redis in ihrem Hauptquartier. Darüber hinaus erfolgt die Migration nach Redis war nicht so einfach, wie man vielleicht gedacht hätte, Redis erfüllte nicht die technischen Anforderungen der Organisation. Redis wird in C++ unter Linux entwickelt. Und es wird unter Windows nicht offiziell unterstützt. Da die Anwendung der Organisation mit .NET 6 erstellt wurde, kann die Integration eines Produkts, das nicht .NET-nativ ist, zu Problemen führen.

 

Ultraschall NCache Passt in ihre Lösung?

NCache bietet ihnen eine flexible und skalierbare In-Memory-Lösung für ihre einschichtige Anwendung sowie deren erweiterte Funktionen. Sie erleben schnellere Benachrichtigungen über Datenänderungen, um diese zu verarbeiten und zu bearbeiten.

Es war eine einfache Migration von Redis zu NCache und es war ziemlich einfach.

sagte der Support-Analyst für Unternehmensanwendungen von dem Team.

Was auch immer ihrer Anwendung zu fehlen scheint, NCache lieferte die optimalen Lösungen als Lösung.

Ungeplante Änderungen oder geplante Wartungsarbeiten wirken sich nicht auf die Leistung der Anwendung aus, da sie eine replizierte Cache-Topologie verwendet. Wenn ein Knoten ausfällt, wird dies durch den anderen Knoten ausgeglichen. Die Datenstrukturanforderungen der Organisation wurden erfüllt von NCache Warteschlangen, die sehr intuitiv und einfach zu implementieren sind. Von dem SignalR backplane an Cache Loader, Backing Source Provider (Read-Through) und NCache Schlösser; Die Tracking-Anwendung profitiert von all diesen leistungsstarken Funktionen von NCache.

Außerdem, NCache ist eine native verteilte .NET-Caching-Lösung, die sowohl unter Linux als auch unter Windows bereitgestellt werden kann. Dies hat ihnen bei ihrem Einsatz geholfen, z Redis Unterstützt nur Linux. Die meisten .NET-Anwendungen laufen unter Windows und jetzt .NET Core Anwendungen können sowohl unter Windows als auch unter Linux ausgeführt werden. Daher ist es wichtig sicherzustellen, dass ihre verteilten Caches auch diese beiden Betriebssysteme unterstützen. Und NCache bietet als eine der Top-Caching-Lösungen diese Unterstützung.

Alachisoft Produkt:
NCache

Kundenanforderungen erfüllt:

  • Einfache und unkomplizierte Migration/Bereitstellung
  • Bessere Datenstrukturen
  • Skalierbarkeit
  • Reduzierte Datenbankfahrten
 

Überblick über die Anwendungsarchitektur und Bereitstellung mit NCache

Die Anwendungsarchitektur besteht im Wesentlichen aus folgenden Komponenten:

  • Frontend:
    Das Frontend ist mit dem SVELTE JS-Rahmen gestaltet.
  • Logikschicht:
    Die Logikschicht interagiert mit der Datenbank über die Rest-APIs. Es benutzt .NET Core 6 Web-APIs, SignalR Notification Hubs und .NET-APIs für SearchService und Kollaborationsdienste.
  • Back-End:
    Das Backend basiert auf SQL Server als Datenspeicher. Zu den Datenquellen gehören SQL Server, ADFS, Sharepoint und Document Management Server. Die Hintergrundquelle (NCache Read-Through) ist in dieser Schicht implementiert, die .NET 6 mit verwendet NCache 5.3 SP1.

Für einen genaueren Blick auf die Anwendung enthält die Web-API den Aktionsdienst Notification Hub zusammen mit SignalR. NCache fungiert als zentraler Knotenpunkt zwischen verschiedenen Teilen der Anwendung. Der Benutzer meldet sich über ADFS (Active Directory Federation Services) an, geht zum Frontend und ruft die Web-API auf. Die Web-API ist dafür verantwortlich, diese Aktion zu erstellen und sie in die Warteschlange innerhalb des zu stellen NCache. Der Aktionsdienst führt mehrere Vorgänge aus, z. B. das Abfragen der Warteschlange, das Verarbeiten von Tasker-Objekten usw.

Wenn im Aktionsdienst ein Element vorhanden ist, wird es verarbeitet. Im Rahmen der Verarbeitung versendet der Action Service die Benachrichtigungen auch über einen Notification Hub. Dieser Aktionsdienst ändert den Status des Datenobjekts „Tasker“ – im Falle einer Änderung des Datenstatus, wobei neue Daten hinzugefügt oder zuvor hinzugefügte Daten aktualisiert werden können. Dies hilft den Benutzern bei der Analyse der Verarbeitung und sendet Benachrichtigungen an alle betroffenen Benutzer, die von dieser Änderung betroffen sind. Die Anwendung verfügt außerdem über einen Kollaborationsdienst zur Verwaltung von Aufgaben mithilfe von SharePoint.

Architekturdiagramm mit NCache
Abbildung 1 – Architekturdiagramm mit NCache

Derzeit verwendet die Anwendung zwei Server mit Lastausgleich, die das Front-End, die Logikschicht und hosten NCache. Zusätzlich gibt es 1 Datenbankserver zur Unterstützung der Server. Sie verfügen über einen allgemeinen Cache, in dem sie Warteschlangen speichern, in dem auch einige Referenzdaten zwischengespeichert werden. Sie verfügen außerdem über zwei weitere Caches zum Speichern statischer Daten, also „Aufgaben“. Sowohl im allgemeinen Cache als auch in den statischen Caches sind eine Backing-Quelle (Read-Through) und ein Loader implementiert.

 

SignalR Backplane

Die Organisation erweitert die Nutzung der Anwendung um die SignalR backplane. Wenn mehrere Benutzer die Web-App verwenden, warten sie auf Feedback zum Tasker-Objekt. Das Feedback wird ihnen über einen Notification Hub bereitgestellt, der SignalR verwendet. Dadurch entfällt die Notwendigkeit, die Webseite jedes Mal zu aktualisieren, um neue Nachrichten anzufordern.

Mit SignalR können Echtzeit-ASP.NET-Webanwendungen erstellt werden, bei denen der Server Updates an alle angemeldeten Benutzer sendet, sobald ein Update ausgelöst wird. Dadurch wird die Reaktionszeit für Benutzeranfragen nach Updates verkürzt. NCache bietet Unterstützung für SignalR durch Bereitstellung einer Erweiterung für den SignalR-Anbieter. Der Anbieter verfügt über Aufzeichnungen aller betroffenen Webserver der Anwendung.

 

Warteschlangendatenstruktur für konsistente Daten

Sie haben die von bereitgestellte Warteschlangendatenstruktur übermäßig genutzt NCache. Warteschlangen werden im allgemeinen Cache gespeichert, um die zur Laufzeit verarbeiteten Informationen aufrechtzuerhalten. Die Web-API fügt der Warteschlange ein neues Element hinzu. Dann fragt Action Service diese Warteschlange ab und führt die erforderlichen Prozesse aus, wenn ein neues Element gefunden wird. Die gesamte Warteschlange wird in gespeichert NCache. Wenn sie einen Artikel abholen müssen, müssen sie nicht die gesamte Warteschlange durchlaufen, da dies nicht nur ein langsamer, sondern auch kostspieliger Prozess ist. NCache Verwendet Referenzierung, um das erforderliche Element abzurufen, ohne die Leistung zu beeinträchtigen.

Die Queue-Datenstruktur verfügt über verschiedene APIs wie GetQueue, die mithilfe der Methode „Contains“ prüft, ob ein Element im Cache vorhanden ist oder nicht. Ebenso das Abrufen des obersten Elements aus einer Warteschlange, das Kopieren einer gesamten Quellwarteschlange in das eindimensionale Array, das Entfernen von Elementen aus der Warteschlange, das Registrieren von Ereignissen (schlüsselbasiert und Datenstrukturen), das Sperren und Entsperren der Warteschlangen für Datenkonsistenz – all dies sind die anderen Funktionen, die NCache Angebote mit der Queue-Datenstruktur.

 

Sperren von Warteschlangen für Datenintegrität

Die Organisation nutzt auch die von angebotenen Sperren NCache. Sie können beispielsweise die Warteschlange immer dann sperren, wenn der Benutzer sie liest oder schreibt, beispielsweise für etwa 20 Sekunden, indem sie die Sperr-API verwenden, damit die Datenintegrität gewahrt bleibt. Wenn die erforderliche Warteschlange frei ist und wieder verwendet werden kann, entsperrt der Benutzer sie mithilfe der Unlock-API. Wenn wir über gleichzeitige Updates sprechen, NCacheDie Sperrfunktion von ist einsatzbereit und sorgt für Datenintegrität und Datenkonsistenz.

Über uns Alachisoft:
Alachisoft Bietet einen beliebten verteilten In-Memory-Cache mit hoher Leistung namens NCache. NCache ist eine Open-Source-Middleware, die in Produktionsumgebungen ausgeführt wird und die Leistung und Skalierbarkeit von .NET-Web-Apps, SOA-Service-Apps und allgemeinen Server-Apps mit hohem Datenverkehr steigert. Seit 2005, NCache hat eine nachgewiesene Erfolgsbilanz mit Hunderten von Kunden auf der ganzen Welt und insbesondere in den USA, Großbritannien und Westeuropa.

Sie können eine kostenlose, 30-tägige, voll funktionsfähige Testversion herunterladen NCache für hier.

Alachisoft
Unternehmenszentrale
12005 Ford Road, Suite 520
Dallas, TX 75234

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

sales@alachisoft.com
support@alachisoft.com

 

Sicherungsquelle (Read-Through-Caching)

Sie verwendeten den im allgemeinen Speicher der Anwendung implementierten Read-Through-Anbieter sowie statische Caches, um die Daten aus der Datenquelle abzurufen, falls sie nicht im Cache vorhanden sind. Dies minimiert die zusätzlichen Netzwerkfahrten zur Datenbank. NCache bietet einen Read-Through-Anbieter, der es den Benutzern ermöglicht, mit der Datenquelle zu kommunizieren. Beim Read-Through-Caching wird im Falle eines Cache-Fehlers NCache wird den Anbieter kontaktieren, um Daten hinter dem Get-Aufruf zu laden.

Der Read-Through-Anbieter wird mithilfe von konfiguriert IReadThruProvider für .NET. Wenn ein Element nicht im Cache gefunden werden kann, werden die Methoden verwendet LoadFromSource und LoadDataTypeFromSource Stellen Sie Logik zum Laden des Objekts oder Datentyps aus der definierten Datenquelle bereit.

 

Cache Loader zum Vorfüllen des Caches

NCache bietet eine weitere leistungsstarke Funktion, die Cache-Startuploader die sie in ihrer Tracking-Anwendung verwendet haben. Die Anwendung füllt beim Start die Daten im Cache vorab auf. Dies spart nicht nur Netzwerkkosten, sondern sorgt auch für eine hohe Verfügbarkeit der Daten. Der Zweck des Cache Loader besteht darin, Latenz bereits bei der ersten Anfrage zu vermeiden. Da der Cache Loader jedoch auf einem anderen Dienst ausgeführt wird, ist er technisch gesehen asynchron. Die Tracking-Anwendung behält beim Start immer die am häufigsten verwendeten Daten im Cache. Diese Funktion hat dazu beigetragen, die Anwendungsleistung zu verbessern und den Anforderungsdurchsatz zu bewältigen.

 

Vorwärts mit NCache

Die Organisation profitiert davon NCache in zahlreichen Bereichen, wie oben erläutert. Als Teil ihres zukünftigen Wachstums planen sie die Nutzung NCachezusammen mit seinen Ereignisbenachrichtigungen und Pub/Sub-Nachrichten, da der Aktionsdienst jedes Mal eine Abfrage durchführen muss, um nach Aktualisierungen zu suchen. NCache ist in der Lage, dies alles für sie zu bewältigen, ohne dass es an Leistung mangelt.

Was macht man als nächstes?

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.