NCache Architektur

Aufgenommene Show
Von Ron Hussain und Zack Khan

Das heutige Webinar basiert auf NCache Architektur. Jetzt geben wir einen Überblick über verteiltes Caching und wie es Ihre Engpässe in .NET und löst .NET Core. Wir werden häufige Anwendungsfälle sowie die verteilte Cache-Architektur und Clustering-Details sowie alle Fragen besprechen, die Sie möglicherweise nicht nur dazu haben NCache, aber Caching im Allgemeinen. Jetzt haben wir jederzeit während dieses Webinars die Möglichkeit, hier im GoToWebinar-Fragen-Tab Fragen zu stellen. Schauen Sie sich also bitte die Bequemlichkeit für den Fragen-Tab an. Und wenn Sie eine Frage stellen, kann ich sie während der Präsentation zur Sprache bringen, damit sie von Ron oder mir selbst beantwortet werden kann. Wir haben am Ende dieser Sitzung auch noch etwas Zeit, um alle anderen eingehenden Fragen durchzugehen, aber wir freuen uns auf eine tolle Zeit.

Also übergebe ich es ohne weitere Umschweife an Ron und los geht's. Sehr gut, danke, Zack. Also, wie Zack gerade erwähnt hat, das heutige Thema ist NCache die Architektur. In diesem Webinar werde ich ausführlich erläutern, wie das geht NCache Clustering funktioniert, was sind die gängigsten Topologien, aus denen Sie wählen können, und einer der Hauptvorteile davon? NCache in Bezug auf Ihre Anwendungsfälle. Welche Anwendungsfälle gibt es und wie können Sie diese optimal nutzen? NCache innerhalb Ihrer Serveranwendungen?

Ich hoffe also, dass jeder meinen Bildschirm sehen kann. Wenn ich dazu eine schnelle Bestätigung bekomme, werde ich schnell damit beginnen. Ja, ich denke, es geht uns allen gut, wenn du kannst. Da hast du es, denke ich. Ja, sieht gut aus. Perfekt. Okay, also fangen wir schnell damit an.

Das Skalierbarkeitsproblem

Also gut, definieren wir zunächst einmal was NCache Ist? Dazu muss ich zunächst definieren, was ein Skalierbarkeitsproblem ist und wie NCache ist in der Lage, dieses Skalierbarkeitsproblem zu lösen. In einer typischen Serverarchitektur, in der Anwendungen bereitgestellt werden, handelt es sich normalerweise um mehr als eine Instanz oder mehr als einen Server. Sie wissen, ob diese Anwendungen bereitgestellt werden. Man kann also mit Sicherheit sagen, dass Ihre Anwendungsebene sehr skalierbar ist.

Das Skalierbarkeitsproblem
Das Skalierbarkeitsproblem

Sie können einer Anwendungsschicht beliebig viele Server hinzufügen. Sie können ein Webformular oder ein App-Formular erstellen, wenn mehrere Anwendungsserver oder Webserver dieselbe Anwendung hosten, diese jedoch im Team arbeiten und die Anforderungslast untereinander aufteilen. Und wenn Sie auf eine neuere Architektur umsteigen, sogar auf eine Microservices-Architektur, haben Sie die Möglichkeit, Ihre Anwendungsservices individuell zu skalieren, also Microservices, die mehr Rechenleistung oder mehr Kapazität zur Anforderungsbearbeitung benötigen.

Daher ist die App-Ebene sehr skalierbar. Es ist linear skalierbar. Je größer Ihr Unternehmen, desto mehr Anfragen können Sie bewältigen. Das Problem tritt ins Spiel, wenn Sie mit der Datenbank arbeiten, beispielsweise einer relationalen Datenbank. Da alle diese Anwendungen, unabhängig von der Skalierbarkeit, immer mit einer Backend-Datenbank kommunizieren müssen. Und wenn sie mit einer Backend-Datenbank kommunizieren, handelt es sich normalerweise um eine einzige Quelle. Und das ist nicht sehr skalierbar. Es eignet sich sehr gut zur Aufbewahrung; Sie können über viele Festplattenressourcen verfügen. Sie können also Speichervorteile daraus ziehen. Wenn Ihre Anwendungen jedoch einer enormen Transaktionslast ausgesetzt sind, die sich in einer Transaktionslast der Datenbank niederschlägt, neigen Datenbanken dazu, überlastet zu werden. Und das ist das Hauptproblem, denn die Anwendung hat Probleme mit der Anforderungsbearbeitung. Es ist nicht skalierbar und auch die Endbenutzererfahrung wird beeinträchtigt.

NoSQL databases lösen dieses Problem einigermaßen. Sie können über eine SQL-Datenbank verfügen, dies erfordert jedoch, dass Ihre Anwendung so umstrukturiert wird, dass sie keine relationale Datenbank mehr verwendet und stattdessen eine verwendet NoSQL database Und das ist ein großes Projekt. Also, NoSQL ist nicht immer eine Lösung für ein Skalierbarkeitsproblem.

Die Lösung: NCache Verteilter Cache

Was sollen wir also jetzt tun, wenn wir das haben? Die Lösung ist sehr einfach: Sie sollten über einen verteilten In-Memory-Cache wie in verfügen NCache. Erstens handelt es sich um eine In-Memory-Lösung, sodass der größte Vorteil darin besteht, dass die Leistung Ihrer Anwendung gesteigert wird. Im Vergleich zu einer relationalen Datenbank ist es superschnell. Und der Hauptvorteil besteht darin, dass es linear skalierbar ist. Im Gegensatz zu einem Datenbankserver, bei dem es sich normalerweise um eine einzelne Quelle handelt. NCache kann auf mehreren Servern liegen. Es ermöglicht Ihnen, eine zu erstellen Cache-Cluster die auf mehreren Boxen laufen kann. Und wie Sie wissen, wachsen Ihre Anforderungen oder Bedürfnisse, wenn Sie über mehr Kapazität zur Anforderungsverarbeitung verfügen müssen, die von Ihrer Anwendungsschicht bearbeitet werden muss. Sie können zur Laufzeit weitere Server im Cache-Cluster hinzufügen.

Die Skalierbarkeitslösung
Die Lösung: NCache Verteilter Cache

Das Schöne daran NCache ist, dass Sie es zusätzlich zu einer relationalen Datenbank verwenden; oder eine Back-End-Datenbank, es ist kein Ersatz für Ihre herkömmlichen Datenquellen. Es ist etwas, das die vorhandenen Datenquellen so ergänzt, dass es die Leistung Ihrer Anwendungen steigern kann. Es ist in der Lage, die Anforderungsbearbeitungskapazität für Ihre Anwendungen zu erhöhen. Und wenn Sie auf der Anwendungsseite wachsen, können Sie jederzeit die Anzahl der Server im Cache-Cluster erhöhen, da es sich um Server in einem Cluster handelt und sie daher als Team arbeiten. Sie sind in der Lage, die Anforderungslast so untereinander aufzuteilen, dass Sie dadurch eine lineare Skalierbarkeit erhalten. Also, NCache ist ein linear skalierbares Modell und sehr einfach zu verwenden. Lassen Sie uns darüber sprechen, wie die Bereitstellungsarchitektur funktioniert. In einer typischen großen Produktionsumgebung ist dies also der Fall NCache würde aussehen wie:

NCache Enterprise
NCache im Unternehmen

Sie hätten eine Reihe von Servern. Dies können Windows- oder Linux-Dienste sein, die so konzipiert sind NCache befindet sich zwischen Ihrer Anwendung und der Datenbank. Sie können beispielsweise mit zwei oder drei beginnen NCache Server, und dann können Sie auf vier oder fünf anwachsen NCache Server und verschiedene Arten von Anwendungen – zum Beispiel Ihr ASP.NET oder ASP.NET Core Web-Apps, Ihr .NET oder .NET Core Dienste oder .NET/.NET Core Server-Apps. Oder es könnte sogar Java oder Node.js sein. Daher können auch diese Anwendungen das verteilte Caching nutzen.

NCache selbst ist in .NET/ geschrieben.NET Core. Es läuft sowohl auf Windows- als auch auf Linux-Rechnern. Ebenso könnten Ihre Anwendungen auf jeder Plattform laufen und ohne Probleme funktionieren. Normalerweise empfehlen wir Ihnen, dies zu tun NCache auf dedizierten Setup-Servern, die nur Hosting betreiben NCache, so dass Sie über dedizierte Ressourcen verfügen NCache. Und dann befinden sich Ihre Anwendungsserver auf einer separaten Ebene. Damit Sie auch für Ihre Anwendungen über dedizierte Ressourcen verfügen. Es gibt aber auch eine andere Bereitstellungsoption für kleinere Konfigurationen NCache sitzen auf denselben Boxen, auf denen auch Ihre Anwendungen laufen. Das ist also immer eine Möglichkeit NCache. Wie bereits erwähnt, besteht die empfohlene Option jedoch darin, eine separate Cache-Ebene zu verwenden, wie im Diagramm dargestellt. Und dann NCache befindet sich zwischen Ihrer Anwendung und der Datenbank. Die Idee dabei ist, dass Sie alle Daten zwischenspeichern, die Sie in Ihren Anwendungen am häufigsten verwenden. Dabei kann es sich um Referenzdaten oder Transaktionsdaten handeln. Mit „Referenz“ meine ich Daten, die leseintensiver sind, und mit „transaktional“ meine ich Daten, die sowohl lese- als auch schreibintensiv sind. Und sobald Sie wissen, welche Daten zwischengespeichert werden sollen, können Sie diese Daten als Ihren „Arbeitssatz“ bezeichnen. Zum ersten Mal können Sie diese Daten aus der Datenbank abrufen und sie dann auch darin hinzufügen NCache und nachfolgende Anrufe können durch abgewickelt werden NCache Nur sparen Sie teure Wege zur Datenbank. Dies bezeichnen wir normalerweise als „Cache-aside“-Muster, bei dem alle von Ihnen vorgenommenen Änderungen auch an den Cache und dann an die Datenbank weitergegeben werden. Und wenn keine Datenbank im Cache vorhanden ist, holen Sie sie immer aus der Datenbank und behalten sie darin NCache Aber Sie überprüfen immer zuerst den Cache. Wenn Sie also Daten im Cache finden, müssen Sie nicht zur Datenbank gehen und kehren von dort aus zurück.

Durchlesen / Durchschreiben

Der alternative Ansatz besteht darin, „Durchlesen“ oder „Durchschreiben“ zu verwenden, was hier durch gepunktete Linien dargestellt wird. NCache verfügt über eine Funktion, die dies automatisieren kann. Sie bietet Ihnen die Option „Cache-Through“ und wird als „Read-Through“ für Lesevorgänge und „Write-Through“ für Schreibvorgänge bezeichnet. Das funktioniert so, dass Sie immer den Cache als Hauptquelle verwenden und einen Lese- und Schreibhandler für den Cache implementieren, der die Aktualisierung der Backend-Datenquellen übernimmt. Unabhängig davon, welche Lesevorgänge Sie ausführen, werden die Daten, wenn sie nicht vorhanden sind, je nach Anbieter nahtlos in Ihre Datenbank übertragen, für Ihre Anwendung abgerufen, an die App zurückgegeben und dort gespeichert NCache. Bei Aktualisierungen werden sowohl der Cache als auch die Datenbank synchron oder asynchron aktualisiert, je nachdem, welches Modell Sie aus der Anwendung aufgerufen haben.

Deshalb werde ich weitere Details zu Lese-, Schreib- und Caching-Mustern mitteilen, aber nur um Ihnen einen allgemeinen Überblick über die Bereitstellung zu geben, sehen Sie hier, wie Sie es sehen würden NCache Wird in einem Serverformular bereitgestellt, auf dem mehrere Anwendungen oder Anwendungsformulare eine Verbindung herstellen können NCache Und dann können sie von einem verteilten Caching profitieren, bei dem der Zugriff auf den Speicher die Anwendungsleistung verbessert. Und wenn Sie mehrere Server in der Cache-Ebene haben, können Sie eine lineare Skalierbarkeit erreichen. Ich hoffe, das war klar; Bitte lassen Sie mich wissen, wenn Sie Fragen haben. Zum Glück sieht es derzeit so aus, als gäbe es keine, also können Sie gerne fortfahren. Sehr gut.

NCache Skalierbarkeitszahlen

Als nächstes werde ich darüber reden NCacheSkalierbarkeitszahlen. Das haben wir gerade erwähnt NCache ist in der Lage, das Skalierbarkeitsproblem für Ihre Anwendung zu lösen. Also, NCache selbst ist linear skalierbar. Da die Anwendungsschicht also skalierbar ist und ein Datenbankengpass durch ein linear skalierbares Modell behoben werden kann, sind hier einige Zahlen, die Sie als Referenz verwenden können. Dies waren unsere Benchmark-Tests, die wir in unserer Qualitätssicherungsumgebung durchgeführt haben. Wir verwendeten Server mit viel CPU und RAM, damit wir sie wirklich auslasten und in einer Situation mit hoher Auslastung verwenden konnten. Wir haben mit einem Server begonnen und die Anwendungslast mit zwei Servern immer weiter erhöht. Sobald die CPU- und RAM-Kapazität einer Reihe von Servern ausgeschöpft war, haben wir einen weiteren Server hinzugefügt.

NCache Skalierbarkeitszahlen
NCache Skalierbarkeitszahlen

Das ist die Faustregel; Wo Sie vorhandene Cache-Server weiterhin verwenden können, beginnen Sie mit zwei NCache Servern, und wenn Sie sehen, dass die Hardwarekapazität dieser beiden Server ausgeschöpft ist, wenn Ihre CPU ausgelastet ist oder Ihr RAM ausgereizt ist – das ist der Punkt, an dem Sie eine Entscheidung treffen, die ich jetzt skalieren muss und ich Sie müssen einen dritten Server zum Cache-Cluster hinzufügen. Genau das haben wir mit einer durchschnittlichen Objektgröße von 1 Kilobyte gemacht, wir haben die Anwendungslast weiter erhöht und die Anzahl der Server erhöht. Bis die angegebene Anzahl an Servern ausgeschöpft war. Und es handelte sich dabei nicht um Daten, die einfach nur zum Mitnehmen bestimmt waren; Es handelte sich um reale Anwendungsdaten, die jedoch in unserem QA-Labor simuliert wurden. Mit zwei Servern, mit drei, vier, fünf oder bis zu fünf Servern konnten wir also 2 Millionen Anfragen pro Sekunde bei einer durchschnittlichen Objektgröße von 1 Kilobyte verarbeiten.

Es handelte sich also um eine Kombination aus Lese- und Schreibvorgängen, die konsistent auf den Cache angewendet wurden. Insgesamt wurde also ein Durchsatz von 2 Millionen Anfragen pro Sekunde erreicht. Und das ohne Kompromisse bei der Leistung. Beim Durchsatz geht es also nicht nur darum, viele Anfragen pro Sekunde zu haben; Aber auch die Latenz einzelner Anfragen sollte erhalten bleiben und superschnell sein. Eine Videodemonstration hierzu sowie ein Whitepaper sind auf unserer Website veröffentlicht (Siehe hier). Und das ist etwas, das Sie auch überprüfen können.

Allgemeine Verwendung von verteiltem Cache

Okay, lassen Sie uns über einige der häufigsten Anwendungsfälle von sprechen NCache.

  • App-Daten-Caching

    Der Anwendungsfall Nummer eins ist das Caching von Anwendungsdaten, wie wir es nennen App-Daten-Caching. Dies sind nun die Daten, die aus einer Backend-Datenbank stammen. Wir haben bereits festgestellt, dass Datenbanken im Allgemeinen langsam sind, da sie festplattenbasiert sind. Im Vergleich dazu ist RAM eine schnellere Quelle. Das andere Problem besteht darin, dass die Datenbank bei hohem Datenverkehr dazu neigt, abzustürzen. Wenn Sie eine hohe Transaktionslast haben und ein einzelner Server vorhanden ist, ist davon auszugehen, dass dieser Ihnen nicht die erforderliche Leistung bietet, die Sie auf der Anwendungsseite benötigen. Daher ist es sehr sinnvoll, Anwendungsdaten mithilfe von in Ihren Anwendungen zwischenzuspeichern NCache. Es ist sehr einfach; Sie nutzen NCache APIs und Sie rufen einfach den Cache auf. Sie stellen eine Verbindung zum Cache her, indem Sie Cache-Initialisierungs-APIs aufrufen. Sobald Sie mit dem Cache verbunden sind, können Sie „Cache.Add, Cache.Update, Cache.Remove' oder 'Cache.Get', um Daten aus dem Cache abzurufen. Deshalb werde ich Ihnen am Ende einige Beispiele zeigen. Die Idee hier ist jedoch, dass es sich bei allen Daten, von denen Sie glauben, dass Sie sie mehr als einmal lesen werden, um Referenzdaten oder Transaktionsdaten handelt. Für Referenzdaten: NCache wird einen großen Mehrwert bieten, da nicht zur Datenbank zurückgegriffen werden muss, um Änderungen abzurufen.

    Common-Gebrauch
    Allgemeine Verwendung von verteiltem Cache

    Richtig, die Daten im Cache werden für einen längeren Zeitraum nutzbar sein. Und während Sie Daten von verwenden NCache, müssen Sie nicht zur Backend-Datenbank gehen. Das verbessert die Leistung Ihrer Anwendung. Und es gibt Ihnen Skalierbarkeit, weil NCache ist im Vergleich skalierbar.

    Daher ist es sehr intuitiv, alle Ihre Referenzdaten zwischenzuspeichern. Wir empfehlen jedoch auch, einige oder sogar die meisten Ihrer Transaktionsdaten zwischenzuspeichern. Nach unserer Erfahrung empfehlen wir, alle Daten, die Sie mehr als einmal lesen, zwischenzuspeichern, auch wenn Sie sie zwei- oder dreimal lesen. Denn selbst wenn es in der Datenbank geändert wird und Sie nach dieser Änderung mehr als einmal – also zwei oder dreimal – lesen, ist es sehr sinnvoll, diese Daten zwischenzuspeichern, sodass Sie dies nicht tun müssen Gehen Sie zur Backend-Datenbank. Und wir haben integrierte Funktionen NCache Dies kann Ihnen auch eine 100-prozentige Synchronisierung mit der Datenbank ermöglichen. Das ist etwas, das Sie auch immer berücksichtigen können.

    Ron, ich hatte eine kurze Frage, die in erster Linie lautete:
    Muss ich immer über das Netzwerk auf meinen Cluster-Cache zugreifen? Ich habe Angst, dass Netzwerkprobleme dazu führen könnten, dass meine Anwendungen nicht funktionieren. Gibt es eine Möglichkeit, einige meiner Daten lokal zu verwalten?

    Okay, normalerweise empfehlen wir Ihnen die Standardbereitstellung NCache in separaten Kartons und dann Ihre Bewerbung in separaten Kartons, oder? Also das, wann NCache basiert auf dem TCP-Protokoll, es handelt sich also um einen Netzwerkaufruf. Es gibt eine Funktion namens „Client-Cache“, bei der es sich um einen lokalen Cache handelt, der sich auf den Anwendungsboxen befindet. Und in einigen Fällen, wenn Sie wirklich mehr Darsteller benötigen und keine durch das Netzwerk verursachte Latenz haben möchten, kann dies auch „in-proc“ erfolgen, was bedeutet, dass es in Ihren Bewerbungsprozess integriert wird. Wenn das passiert, wird die Teilmenge der Daten automatisch in den Client-Cache übertragen. Das erspart also jegliche Prozess-zu-Prozess-Kommunikation. Und dann werden auch jegliche Netzwerkkommunikation oder Netzwerk-Overheads eingespart. Wir haben also eine Funktion; Das ist etwas, worauf ich eingehen werde, sobald wir zu unseren Topologien kommen. Deshalb werde ich einige weitere Details mitteilen, aber um Ihnen einen kurzen Überblick zu geben, funktioniert der Client-Cache folgendermaßen. Es handelt sich um einen Cache, der sich in derselben Box befindet, in der sich auch Ihre Anwendungen befinden. Der Grundgedanke hierbei ist, dass keine häufigen Netzwerkausflüge erforderlich sind, wenn Sie den Client-Cache aktiviert haben. Und das funktioniert ohne Codeänderungen. Ich hoffe, das beantwortet die Frage. Bitte lassen Sie mich wissen, wenn Sie weitere Fragen haben. Ja, hört sich gut an. Ron, nimm es weg. Sehr gut.

  • ASP.NET & ASP.NET Core Caching

    Der nächste Anwendungsfall von NCache befindet sich in einer Webanwendung. Wenn es doch einige Anforderungen an die Zwischenspeicherung von Benutzerdaten gibt, oder? Und normalerweise ist es ASP.NET oder ASP.NET Core Sitzungsstatus. Nun gehören diese Daten nicht in die Datenbank, da es sich um transiente Daten handelt. Es handelt sich um Daten, die ein Benutzer erstellt und die im Anwendungsbereich verbleiben, solange dieser Benutzer aktiv ist. In manchen Fällen können Sie sie aus historischen Gründen in der Datenbank behalten, aber in den meisten Fällen gehören die Daten einem Benutzer.

    Also Microsoft ASP.NET oder ASP.NET Core Sitzung. Es gibt nur wenige Optionen, die Sie verwenden können. Statusserver, Sie können In-Proc verwenden. Sie können einen Datenbankserver verwenden. Alle diese Optionen haben Probleme. Beispielsweise ist In-Proc ein Single Point of Failure; Sie müssen den Sticky-Session-Load-Balancing verwenden. ASP.NET State Server ist wiederum ein Single Point of Failure, und er ist, wie Sie wissen, nicht skalierbar. Die Datenbank ist eine Option und stellt wiederum keinen Single Point of Failure dar, da Sie sie sichern können. In manchen Fällen könnte es sich jedoch um einen Single Point of Failure handeln, sie ist jedoch langsam und nicht skalierbar. Also, was sollen wir hier tun? Erwägen Sie erneut die Verwendung NCache für ASP.NET und ASP.NET Core Zwischenspeicherung des Sitzungsstatus. Das funktioniert so, dass Sie unseren Provider einbinden. Es handelt sich um eine Option, für die keine Codeänderung erforderlich ist, sondern sobald Sie sie anschließen NCache in Ihren Anwendungen, NCache wird zu Ihrem Hauptsitzungsspeicher. Und die Idee hier ist, dass es superschnell sein wird, weil es RAM-basiert ist. Es ist sehr skalierbar, da es mehrere Server gibt. Und im Inneren NCacheSobald wir mit der Präsentation fortfahren und ich mich mit Topologien befasse, werden Sie das verstehen NCache verfügt über Backups mit Hilfe von Replikationen. Und Sitzungsdaten sind Benutzerdaten, oder? Es handelt sich also um Daten, die Sie auf keinen Fall verlieren möchten, denn wenn Sie diese Daten verlieren, hat das Auswirkungen auf den Benutzer und auf das Unternehmen. Bei der Replikation werden also auch die Daten gesichert.

    Common-Gebrauch
    Allgemeine Verwendung von verteiltem Cache

    Wenn ich also die Vorteile auflisten muss, die Sie erhalten, und Sie wissen, dass Sie zunächst einmal die Leistung Ihrer Anwendung durch den In-Memory-Zugriff verbessern werden. Sie haben mehrere Server, die Ihre Anwendungen für das Sitzungs-Caching unterstützen, sodass es sehr skalierbar ist. Darüber hinaus verfügt es über integrierte Hochverfügbarkeits- und Datenzuverlässigkeitsfunktionen. Es kommt also zu keinem Verlust von Sitzungsdaten oder Ausfallzeiten der Anwendung, falls dies der Fall sein sollte NCache Server fällt aus. Und Sie müssen den Sticky-Session-Load-Balancing nicht mehr verwenden, weil NCache ist eine gemeinsame Einheit. Die Anfrage kann an einen beliebigen Webserver erfolgen. Es wird immer in der Lage sein, Daten von zu finden NCache basierend auf unserem Protokoll. Und das alles auch ohne Codeänderungen.

    Ein weiterer Anwendungsfall: Hier können Sie auch Ihren Ansichtsstatus bündeln, wenn Sie ASP.NET-Webformulare verwenden. Dort wird auch der Ansichtsstatus zwischengespeichert. Der Ansichtszustand wird schwer; es frisst viel Bandbreite. Es wird Teil Ihrer Anfrage- und Antwortpakete und wird immer an den Browser zurückgesendet. Und es wird dort nie wirklich verwendet, aber es ist etwas, das im Browser, auf der Client-Seite, gespeichert wird. Und wenn Sie zurück posten, wird der Ansichtsstatus auf der Serverseite wiederhergestellt. Also, mit NCacheermöglichen wir Ihnen, den Ansichtsstatus auf der Serverseite zwischenzuspeichern, sodass Ihrer Nutzlast kein schwerer Ansichtsstatus mehr zugeordnet ist. Das verbessert die Leistung. Allerdings wird der Ansichtsstatus immer auf der Browserseite gespeichert. Wenn Sie es jedoch auf der Serverseite belassen, wo es benötigt wird, wird es das Gesamtverhalten der Anwendung verbessern. Ihre Bandbreite wird dadurch nicht mehr beansprucht, da dem eigentlichen Anforderungs- und Antwortpaket kein schwerer Anzeigestatus mehr zugeordnet ist. Außerdem sind wir sehr sicher, da der Ansichtsstatus auf der Serverseite gespeichert wird und Sie darüber hinaus eine Verschlüsselung und einige Sicherheitsfunktionen einrichten können. Und dies ist auch eine Option ohne Codeänderung. Dies gilt jedoch nur für ältere Webformulare. Daher würde ich Ihnen empfehlen, wenn Sie über eine ASP.NET-Webformularanwendung verfügen, auch einen Caching-Ansichtsstatus in Betracht zu ziehen.

    Und dann haben wir ASP.NET und ASP.NET core Antwort-Caching. Bei statischen Seiten oder Seitenteilen innerhalb einer Seite, die statisch sind, sollten Sie in Betracht ziehen, diese Seitenausgaben zwischenzuspeichern. Und im ASP.NET core, wir haben eine Antwort-Caching-Option, die Sie auswählen können, und dies ist auch eine Option, bei der keine Codeänderung erforderlich ist. Darüber hinaus verfügen wir auch über ASP.NET und ASP.NET Core SignalR Backplane. Denn wenn Sie SignalR in einem Webformular verwenden, benötigen Sie unbedingt eine Rückwandplatine. Und typische Backplanes, wie etwa ein Dateisystem oder eine Datenbank, können all die Skalierbarkeits- und Leistungsherausforderungen mit sich bringen, die wir gerade besprochen haben. Mit NCachewird superschnell, sehr skalierbar und zuverlässig sein, da wir hinter den Kulissen ein sehr zuverlässiges Nachrichtensystem verwenden. Dies sind also einige der Anwendungsfälle, die Sie auf ASP.NET oder ASP nutzen können.NET Core um weitere Anwendungsbeispiele zu finden.

  • Bevor ich weitermache, Zack; Ich glaube, da ist eine Frage gepostet. Ja. Die Frage ergab sich also im Grunde aus der Aussage „und DB standardmäßig“. Also, mittendrin – ich wollte warten, bis Sie fertig sind, aber die Frage ist im Grunde genommen eine Frage. Und für den Fall, könnten Sie die Frage näher erläutern, Sir?

    Hallo Ron, ist NCache Auch für Datenveröffentlichungszwecke geeignet, mit der Anforderung, Daten im Speichercache mit Optionen zum Synchronisieren von Daten in der Datenbank als Hintergrundprozess zu speichern? Und kann NCache Kümmern Sie sich standardmäßig um diesen Synchronisierungsmechanismus zwischen Speichercache und Datenbanken?

    Ja, das ist eine sehr gute Frage. In fortgeschrittenen Fällen kann dies immer eine Anforderung sein. Es funktioniert auf zwei Arten. Einer davon ist, dass Ihre Anwendung jetzt Daten verwendet, die von stammen NCache, aber Daten sind in der Datenbank vorhanden. Es handelt sich also um zwei verschiedene Quellen, die sowohl zum Lesen als auch zum Schreiben synchron sein müssen. Nun, wenn die Anwendung, mit der verbunden ist NCache und die Datenbank ist die einzige Anwendung, die für die Änderung der darin enthaltenen Daten verantwortlich ist NCache und Datenbank, empfehlen wir Ihnen jetzt die Verwendung von Read-Through und Write-Through. Und ja, dies kann je nach Ihren Anforderungen asynchron oder synchron erfolgen. Was also wirklich passieren wird, ist, wann immer Sie versuchen, Daten abzurufen NCache und es nicht im Cache vorhanden ist und Sie möchten, dass es zwischengespeichert wird, rufen Sie automatisch „read-through“ auf, und das liest basierend auf Ihrem Code aus der Backend-Datenbank. Und wenn Daten aus einer Datenbank stammen und diese Daten wiederum in der Datenbank aktualisiert werden müssen, nutzen Sie in diesem Fall das Durchschreiben, sobald Sie die Daten im Cache aktualisieren. Jetzt kann das Durchschreiben auch als „Write-Behind“ erfolgen, was bedeutet, dass die Daten im Inneren aktualisiert werden müssen NCache und in der Datenbank mithilfe Ihres Write-Through-Handlers. Und wenn Sie einen asynchronen Aufruf davon wünschen, können Sie in diesem Fall Write-Behind verwenden, sodass dies im Hintergrund erfolgen kann. Aber wieder, NCache und Ihre Bewerbung ist dafür verantwortlich, wo NCache ruft Ihren Code auf und Ihre Anwendung ruft ihn auf.

    Eine andere Situation könnte sein, dass es andere Anwendungen gibt, die möglicherweise direkt Daten in der Datenbank ändern, und Ihre Anwendung ist sich dessen nicht bewusst. In diesem Fall müssen Sie in Wirklichkeit unsere Datenbanksynchronisierungsfunktionen nutzen. Sie sollten sich eine benutzerdefinierte Abhängigkeit ausdenken. Sie wissen, SQL Server verfügt über eine Kettenbenachrichtigung. Wir haben Datenbankabhängigkeiten. Es gibt also viele Synchronisierungsfunktionen, mit denen jede Änderung in der Datenbank erfasst wird NCache automatisch. Und Sie können erneut das Durchlesen verwenden und die darin enthaltenen Daten neu laden NCache sowie. Um es zusammenzufassen: NCache kann, wie Sie wissen, mit beiden Situationen umgehen: Entweder ist es Ihre Anwendung, die die einzige Entität ist, die darin etwas ändert NCache und Datenbank oder in einer Situation, in der die Datenbank außerhalb des Bereichs der Anwendung geändert werden kann, die das Caching verwendet.

    Es werden also beide Szenarien abgedeckt, und NCache bietet Ihnen für diese Fälle eine 100-Synchronisierungsoption, die Sie kennen. Wenn Sie über Speichercache sprechen, wird Speichercache normalerweise auch von ASP.NET bereitgestellt, richtig! Aber wenn Sie sich beziehen NCache als Speichercache, daher habe ich die Frage bereits beantwortet. Wenn Sie also weitere Fragen haben, lassen Sie es mich bitte wissen, dann können wir diese weiter bearbeiten.

  • Pub/Sub-Messaging

    Hört sich gut an. Ich denke, wir können weitermachen. Sicher. Also gut, als nächstes werde ich mich mit Pub-Sub-Nachrichten befassen. Wie du sehen kannst, NCache wird bereits von Anwendungen gemeinsam genutzt, richtig. Es handelt sich also um eine Entität, die Sie für Ihre Datenanforderungen verwenden können. Sie können Daten hinzufügen; Sie können Daten daraus abrufen. Sie profitieren von Leistungs- und Skalierbarkeitsvorteilen NCache. Sie können diesen Anwendungsfall erweitern, indem Sie verwenden NCache auch als Messaging-Plattform. Also, NCache Das Versenden von Nachrichten ist sehr kraftvoll NCache. Es handelt sich um einen asynchronen, ereignisgesteuerten Mechanismus, bei dem mehrere Anwendungen untereinander Messaging-Anforderungen oder App-Koordinationsanforderungen steuern können. Wenn Sie mehrere Anwendungen benötigen, um miteinander zu kommunizieren, ist der Aufbau einer Kommunikation eine Herausforderung. Sie müssten sich also auf etwas verlassen, das eine zentralisierte Einheit ist, NCache ist diese Entität. Und mit seiner Messaging-Unterstützung ist es in der Lage, Ihnen die Option zu bieten, dass eine Anwendung Daten oder Nachrichten hinzufügen kann NCache, und diese Nachrichten können an alle Abonnenten am anderen Ende weitergegeben werden: die anderen Anwendungen, die diese Nachrichten benötigen.

    Common-Gebrauch
    Allgemeine Verwendung von verteiltem Cache

    Ebenso könnten dies auch datengesteuerte Nachrichten sein. Wenn beispielsweise Daten hinzugefügt, aktualisiert oder gelöscht werden, werden Sie darüber benachrichtigt. Dabei kann es sich um benutzerdefinierte Anwendungsnachrichten oder datengesteuerte Nachrichten handeln, sodass beide Bereiche abgedeckt werden, in denen Daten eingefüllt werden NCache und Sie möchten, dass andere Anwendungen davon erfahren, können Sie dadurch die Messaging-Anforderungen steigern. Oder es könnte sich um benutzerdefiniertes Messaging oder anwendungsgesteuertes Messaging handeln, bei dem eine Anwendung mit einer anderen Anwendung kommunizieren muss. Es basiert wiederum auf einem skalierbaren In-Memory-Modell. Es stehen auch zuverlässige Replikationsoptionen zur Verfügung. Es basiert auf der herkömmlichen Pub-Sub-Messaging-Plattform, bei der wir ein Themenkonzept und ein Message-Broker-Konzept haben, bei dem mehrere Anwendungen damit verbunden sind. Sie können also Herausgeber- und Abonnentenanwendungen definieren. Publisher-Anwendungen veröffentlichen, wie Sie wissen, Nachrichten an NCache die dann an alle diese Teilnehmer übermittelt werden. Und dann können Abonnenten auch ihre eigenen Nachrichten senden. NCache fungiert als Kommunikationsplattform zwischen diesen verschiedenen Anwendungen.

  • Volltextsuche (Distributed Lucene)

    Schließlich haben wir noch einen weiteren Anwendungsfall, nämlich die Volltextsuche. Wenn Sie also eine Anwendung haben und alle Anforderungen für die Volltextsuche erfüllen müssen NCache, können Sie die Verwendung unserer auf Lucine.NET basierenden Volltextsuchfunktionen in Betracht ziehen.

    Sie wissen, dass die Lucene-API normalerweise eigenständig ist. Richtig, innerhalb von Jungs können Sie es auf mehrere Server erweitern. NCache gibt Ihnen die Möglichkeit, auch Indizes in den Speicher zu laden. Also, NCache würde festplattenbasierte Indizes verwenden, aber es ermöglicht Ihnen tatsächlich, die Speicher- und Anforderungsverarbeitungskapazität zu erweitern, indem Sie mehrere Server darauf installieren. Obwohl es also festplattenbasiert ist, ist es dennoch besser als eine einzelne Quelle in der Datenbank. Denn in Fällen, in denen Sie eine hohe Transaktionslast haben, ist jeder Server für seinen eigenen Satz von Indexanforderungen verantwortlich. Es wird also sehr skalierbar sein; Es wird auch sehr zuverlässig sein. Da es sich hierbei um einen unterstützten Speicher handelt, ist die Persistenz selbst bei Szenenindizes eine Funktion mit einem NCache. Alle Daten, die Sie darin speichern NCache kann auch auf der Festplatte oder basierend auf einigen Datenbankanbietern auch auf einigen Datenbanken gespeichert werden. Aber Lucene ist das einzige Feature, wo NCache verwendet Festplatte im Vergleich zu RAM, da die Art des Anwendungsfalls es erfordert, dass Daten persistent sind.

    Common-Gebrauch
    Allgemeine Verwendung von verteiltem Cache

Ich hoffe, es war unkompliziert. Das waren also einige der Anwendungsfälle. Auch in diesen Anwendungsfällen verfügen wir über viele Funktionen; Alle Arten von Anwendungen und jede spezifische Anforderung innerhalb einer Anwendung können mithilfe unserer Objekt- und Sitzungs-Caching-Funktionen vollständig abgedeckt werden.

Nur eine kurze Frage, Ron.
Gibt es eine Möglichkeit für mich, auf meine Daten im Cache zuzugreifen, wie ich es in meiner MySQL-Datenbank tue? Ich möchte SQL-Abfragen für meine Cache-Daten ausführen können. Kann ich das machen?

Sicher. NCache Unterstützt zunächst eine SQL-Suche und LINQ-Abfragen. Wenn Sie also in der Lage sind, eine Anwendung zu schreiben, mit der Sie einfach eine Verbindung herstellen können NCache, und führen Sie dann kriterienbasierte Suchen aus. Dies ist also die einfache Option, die Sie nutzen können, wenn Sie eine kriterienbasierte Suche schreiben. Sie können beispielsweise alle Produkte dort auswählen, wo Produktpreis ist größer als 10 und kleiner als 100. Oder Sie können alle Produkte basierend auf einer Kategorie finden; Sie können Kunden basierend auf einer Region finden. Sie können also SQL-basierte Suchen oder LINQ-basierte Suchen erstellen und NCache würde dir die Daten aus dem Cache geben. Das ist also eine Option.

Die andere Möglichkeit besteht darin, dass wir eine LINQ Pad-Integration haben. Wenn Sie also nur Daten visualisieren möchten, ohne eine Anwendungsentwicklung durchführen zu müssen, ist LINQ Pad eine einfache Möglichkeit, LINQ-Abfragen auszuführen und dann Daten durch Ausführen von LINQ-Abfragen zu visualisieren.

Und in unserer kommenden Version besteht die dritte Option darin, dass wir ein Datenanalysetool bereitstellen. Deshalb stellen wir Ihnen eine automatisierte Möglichkeit zur Verfügung, ein Überwachungstool, mit dem Sie Ihre im Cache vorhandenen Daten überwachen können. Und es wird Ihnen diese kriterienbasierten Suchoptionen über eine GUI bieten, also ist das etwas, was in der Pipeline ist; Anforderungen wurden erfüllt, Entwicklungsarbeiten wurden abgeschlossen. Ich denke, es wird Teil unserer nächsten Veröffentlichung sein.

Ich freue mich auf jeden Fall auf all das. Perfekt. Ja. Sehr gut. Ich denke, im Moment geht es uns gut, Ron. Ein paar dieser Fragen hebe ich mir auch für den Schluss auf, weil wir einige interessante Fragen haben, aber ja, machen wir weiter. Sicher.

Selbstheilender dynamischer Cluster

Als nächstes werde ich mich mit allen Details zum dynamischen Cache-Cluster befassen. NCache basiert auf dem TCP-IP-basierten Cache-Clustering-Protokoll. Es handelt sich um unser selbst implementiertes Cache-Clustering. Wir verwenden in diesem Zusammenhang weder Drittanbieter- noch Windows-Clustering. Es ist ein zu 100 % proprietäres Protokoll. Es ist in .NET geschrieben und .NET CoreSie wissen also, dass es sehr praktisch ist: Die TCP-Sockets sind auch .NET und .NET Core basierend. Da es sich um eine 100 % Peer-to-Peer-Architektur handelt, gibt es keinen Single Point of Failure. Sie können zur Laufzeit Server hinzufügen oder entfernen. Sie müssen den Cache oder die damit verbundenen Clientanwendungen nicht stoppen. Sie können also dynamisch Änderungen an einem laufenden Cache-Cluster vornehmen und NCache Ich werde Ihnen dafür keine Probleme bereiten. Wenn Sie einen Server hinzufügen, werden Clients zur Laufzeit benachrichtigt, sodass sie automatisch wissen, dass dieser Server nicht mehr, Sie wissen schon, Teil des Cache-Clusters ist, sodass sie beginnen, den zusätzlichen Server zu verwenden, und der Cluster passt sich automatisch an. Ebenso erkennen andere Server, sobald Sie einen Server entfernen, dass dieser Server endgültig verschwunden ist. Sie benachrichtigen die Clients und die Clients verwenden den verlorenen Server nicht mehr. Es gibt eine Verbindungs-Failover-Unterstützung, die auch auf der Client-Seite aufgebaut ist. Wenn also ein Server ausfällt, stellt der Cluster sicher, dass die Clients davon erfahren und ein Failover der Verbindung durchführen und mit der Nutzung des verbleibenden Servers beginnen Server.

Dynamischer Cache-Cluster
Dynamischer Cache-Cluster

Daher werden alle Änderungen im Cluster in jedem Fall an die Clients weitergegeben. Clients sind intelligent und kennen immer den Status des Cache-Clusters. Dadurch wird sichergestellt, dass es weder zu Ausfallzeiten noch zu Datenverlusten kommt, da wir auch über eine integrierte Replikationsunterstützung verfügen. Also, NCache ist hochverfügbar und dank der Replikation auch sehr zuverlässig. Es gewährleistet eine 100-prozentige Betriebszeit auf der Anwendungsseite, ohne dass es zu einer Anwendungsunterbrechung kommt, die Sie weiterhin verwenden können NCache.

Caching-Topologien

Als Nächstes werde ich über die Caching-Topologien sprechen. Das ist der Hauptteil, den ich abdecken wollte. Wir haben vier Optionen zur Auswahl. Die erste Option gilt wiederum für kleinere Konfigurationen. Diese bestimmen, wie Sie einen Cache konfigurieren würden.

Gespiegelter Cache

Wir haben also die Möglichkeit, einen Cache mit einer gespiegelten Cache-Topologie zu konfigurieren, und die Funktionsweise besteht darin, dass Sie nur maximal zwei Server haben. Einer dieser Server würde als aktiver Server fungieren, mit dem alle Clients verbunden werden. Der andere Server würde als passiver Server fungieren, der als Backup dient und von dem die Sicherung durchgeführt wird NCache. Sobald Sie diese Topologie konfigurieren, folgt sie automatisch der Architektur. Im Grunde müssen Sie nicht definieren, ob dies aktiv oder passiv wird, es geschieht durch NCache automatisch. Sobald Sie dies jedoch tun, werden alle Clientanwendungen eine Verbindung zum aktiven Server herstellen und von dort aus Daten lesen und schreiben. Alle Daten, die wir auf dem aktiven Server haben, werden über eine asynchrone Spiegelungsoption auf dem passiven Server gesichert. Der Client aktualisiert also die aktiven Ergebnisse, sodass auf der Seite der Clientanwendung keine Replikationskosten anfallen. Die Kundenanwendung wird superschnell sein. Hinter den Kulissen, NCache sollte das Backup aktualisieren. Und die Sicherung ist aus einem wichtigen Grund vorhanden: Wenn Server eins jemals ausfällt, wird der Sicherungsserver automatisch als aktiver Server aktualisiert und die Clients führen ein Failover ihrer Verbindungen durch und beginnen mit der Verwendung des neu aktiven, zuvor gesicherten Servers. Und wenn nun der erste Server zurückkommt, wird er erneut als Backup-Knoten und nicht als aktiver Knoten beitreten, da wir bereits einen aktiven Knoten im Cache-Cluster haben. Und das alles nahtlos in Ihre Anwendungen integriert. Wenn ein Server hinzugefügt wird oder ein Server verloren geht, müssen Sie keine Eingriffe vornehmen.

Gespiegelter Cache
Gespiegelter Cache

Diese Topologie eignet sich sowohl für Lese- als auch für Schreibvorgänge sehr gut. Also gut als Referenz, gut für Transaktionsdaten, aber es gibt ein Kapazitätsproblem, weil Sie nur maximal zwei Server haben und von diesen beiden Servern zu jedem Zeitpunkt nur einer aktiv ist. Für kleinere Konfigurationen mit zuverlässigen Daten, wie Sie wissen, könnte Caching eine der Optionen sein.

Replizierter Cache

Die zweite Option ist ein replizierter Cache. Dies gilt wiederum für kleinere Konfigurationen. Dies funktioniert so, dass alle Server aktiv sind, wie Sie sehen können, sind Server 1 und Server 2 beide aktiv. Clients sind auf verschiedene Server aufgeteilt. Wenn Sie also sechs Clients haben, wie im Diagramm gezeigt, würden einige von ihnen eine Verbindung zu Server eins und andere eine Verbindung zu Server 2 herstellen. Richtig, diese drei sind mit Server eins verbunden und diese sind mit Server eins verbunden Server 2.

Replizierter Cache
Replizierter Cache

Dies geschieht automatisch; Der Verbindungsausgleich ist etwas, das im Inneren eingebaut ist NCache. Alle Server sind aktiv, aber jeder Server verfügt über eine Kopie des Caches. Unabhängig davon, welche Daten Sie auf Server 1 haben, befindet sich eine Kopie auf Server 2, und diese Kopie wird mithilfe von Synchronisierungsaktualisierungen verwaltet. Unabhängig davon, welche Updates Sie auf einem Server durchführen, müssen diese Updates in einem Synchronisierungsaufruf auf andere Server angewendet werden. Damit meinen wir, dass der Client warten wird, bis der gesamte Vorgang abgeschlossen ist. Wenn der Vorgang auf einem Server fehlschlägt, wird der gesamte Vorgang zurückgesetzt. Und so erreichen wir eine 100 % synchronisierte Kopie auf allen Servern. Dies ist im Hinblick auf die Zuverlässigkeit sehr gut, aber auch, wenn Sie einen leseintensiven Anwendungsfall haben, da Sie mehr Datenkopien oder mehr Kopien von verschiedenen Servern haben, sodass sich Ihre Lesekapazität erhöht, je mehr Server Sie haben weil Sie mehr Server haben, um Anfragen zu bearbeiten. Aber wie Sie gerade bemerkt haben, haben wir ein Synchronisierungsupdate, sodass jeder Schreibvorgang auf allen Servern angewendet werden muss. Daher eignet es sich gut für kleinere Konfigurationen hinsichtlich der Schreibkapazität. Wenn Sie drei oder vier Server haben, müssen Sie denselben Vorgang drei oder vier Mal anwenden, was sich negativ auf die Leistung auswirken kann. Daher wird diese Topologie eher für Referenzdatenszenarien und kleinere Konfigurationen empfohlen. Es ist für Lesevorgänge skalierbar, für Schreibvorgänge nicht sehr skalierbar, aber sehr zuverlässig. Es sorgt für hohe Verfügbarkeit und Datenzuverlässigkeit, denn wenn Sie einen Server verlieren, zum Beispiel geht Server 1 verloren, gibt es keinen Datenverlust oder Ausfallzeiten, da diese Anwendungen ein Failover durchführen und beginnen, den überlebenden Server auszuwählen, und sie über eine Kopie des Caches verfügen schon verfügbar.

Partitionierter Cache und Partitionsreplikat-Cache

Die nächste Option besteht darin, dass Sie einen Cache mithilfe eines partitionierten Caches konfigurieren können. Heute sind Partitionierung und Partitionsreplik die gängigsten Topologien. Mit dem partitionierten Cache können Sie Daten auf Ihre verfügbaren Serverknoten verteilen. Wenn Sie beispielsweise zwei Server haben und einige Daten haben, würde die Hälfte der Daten auf Server 1 und die andere Hälfte auf Server 2 gehen. Die Datenverteilung ist ebenfalls Teil von NCache. Dies ist nicht etwas, was Ihre Anwendungen tun, sondern wird von Anwendungen automatisch zur Laufzeit erledigt. Es gibt eine intelligente Verteilungskarte und einen Hash-Algorithmus, der vorgibt, welche Daten an welchen Server gesendet werden.

Caching-Topologien – Partitionierter Cache
Caching-Topologien – Partitionierter Cache

Auf dieser Grundlage sind es Ihre Anwendungen, die die Daten gleichmäßig auf alle Server im Cache-Cluster verteilen. Jetzt sind die Daten gleichmäßig verteilt, sodass auch Ihre Anforderungslast gleichmäßig verteilt wird. Dadurch erhalten Sie je nach Anzahl der Server mehr Lese- und Schreibkapazität. Wenn Sie zwei Server haben, arbeiten zwei Server in einem Team. Und wenn Sie von zwei auf drei wachsen, verfügen Sie über mehr Server, die Ihre Lese- und Schreibanfragen bearbeiten. Dadurch erhalten Sie mehr Skalierbarkeit für Lese- und Schreibvorgänge. Bei linearer Skalierbarkeit erhalten Sie also mehr Skalierbarkeit, wenn Sie weitere Server hinzufügen. Durch das Hinzufügen weiterer Server bündeln Sie auch die Speicherressourcen, da die Daten verteilt sind, sodass Sie den Speicher aller Server bündeln. Wenn Sie also zwei Server haben, verfügen Sie über eine Kapazität von zwei Servern. Wenn Sie einen dritten oder vierten Server hinzufügen, erhöhen Sie Ihre Kapazität um diese vielen Server. Die Gesamtkapazität wird also gebündelt, sodass Sie ein lineares Wachstum erzielen, wenn Sie dem Cache-Cluster weitere Server hinzufügen.

Sehr gut zum Lesen, sehr gut zum Schreiben, sehr skalierbar für Referenz- und Transaktionsdaten. Der einzige Nachteil dieser Topologie besteht darin, dass es kein Backup gibt. Wenn Sie einen Server verlieren, verlieren Sie auch diese Partition. Wenn das passiert, müssen Sie eine Möglichkeit haben, diese Daten aus einer Backend-Datenbank zu erstellen. Wenn Ihr Hauptziel also darin besteht, eine hohe Leistung zu erzielen, wenn es sich um eine leistungsorientierte Anwendung handelt und Sie es sich leisten können, auf eine Datenbank zurückzugreifen, was häufig der Fall ist, dann verlassen Sie sich nicht darauf NCache Für hohe Verfügbarkeit und Datenzuverlässigkeit erhalten Sie dadurch die beste Leistung im Vergleich zu allen anderen Topologien.

Aber wenn Sie eine hohe Verfügbarkeit benötigen und wissen, dass auch Anforderungen an die Datenzuverlässigkeit erfüllt werden müssen NCacheIch habe eine bessere Topologie, die Partition des Replikat-Cache genannt wird. Nun ist die Gesamtarchitektur genau wie eine Partitionierung mit einer Erweiterung der Replikate, wobei jeder Server über eine Datenpartition verfügt, aber jeder Server zwei Partitionen verwaltet; eine aktive Datenpartition, mit der Clients verbunden sind, und eine Backup-Partition eines anderen Servers. Server 1 ist aktiv, sein Backup ist auf 2, Server 2 ist aktiv, sein Backup ist auf 1. Und Sie haben die Möglichkeit, zwischen synchronen und asynchronen Backup-Optionen zu wählen. Wenn Sie eine Replikatpartition mit Async wählen, aktualisiert der Client die aktive Partition und gibt zurück, dass die Vorgänge auf dem Client abgeschlossen wurden. NCache aktualisiert die Backup-Partition hinter den Kulissen. Wenn Sie „Synchronisieren“ wählen, aktualisiert die Clientanwendung die aktiven und gesicherten Daten als Transaktionsvorgang. Wie auch immer, die Synchronisierung ist offensichtlich zuverlässiger, die Asynchronisierung schneller. Aber so oder so, NCache ist in der Lage, die Datenzuverlässigkeit so zu handhaben, dass bei einem Serverausfall die Backup-Topologie aktiviert wird und es zu keinem Datenverlust oder Anwendungsausfall kommt. Rechts.

Caching-Topologien – Partitionsreplikat-Cache
Caching-Topologien – Partitionsreplikat-Cache

Lassen Sie mich Ihnen kurz diese Topologie mit 3 Servern zeigen. Wir profitieren also von allen Vorteilen einer hohen Leistung beim Lesen, einer hohen Leistung beim Schreiben und linearer Skalierbarkeit sowohl beim Lesen als auch beim Schreiben. Darüber hinaus profitieren wir von Skalierbarkeit, Hochverfügbarkeit und Datenzuverlässigkeit. Sollte ein Server ausfallen, kommt es weder zu Datenverlusten noch zu Anwendungsausfällen.

Datenausgleich beim Hinzufügen eines Servers
Datenausgleich beim Hinzufügen eines Servers

Demo

Ich hoffe, es ist klar. Lassen Sie mich Sie jetzt zu unserer Demo-Umgebung führen und Ihnen schnell zeigen, wie Sie diese Caching-Topologien erstellen können. Anschließend zeige ich Ihnen auch, wie Sie schnell einen Cache-Cluster testen. Aber in der Zwischenzeit lassen Sie mich bitte wissen, wenn Sie Fragen haben. Nun, nur eine kurze Erinnerung: Alles, was wir zeigen, können wir auch mit Ihnen in Form von Hand-Holding-Sitzungen und technischen Support-Sitzungen in Ihren Umgebungen für Ihre spezifischen Anwendungsfälle durchführen. Also, alles, was wir hier besprechen, auch nach dem Webinar, wir würden uns als Team freuen, auch dazu mit Ihnen zusammenzukommen, um Ihnen zu zeigen, wie es für Sie funktionieren würde.

Was die Fragen angeht, habe ich eine, die genau am Ende gestellt wurde. Einer davon ist einer Ihrer Favoriten.
Es gab viele Diskussionen über die Verwendung von Hazelcast für das Anwendungs-Caching. Was macht NCache vorausgesetzt, dass Hazelcast dies nicht tut?

Okay. Erstens ist es eher eine Debatte. NCache ist tatsächlich in .NET geschrieben und .NET Core, also bevorzugte Plattform für NCache ist Windows. Das Schöne daran NCache ist, dass es sowohl unter .NET als auch, wie Sie wissen, unter Windows und auch unter Linux läuft. Plattform und Kompatibilität unterstützen dies NCache bietet, gibt es kein anderes Produkt, das das leisten kann. Das ist also der erste Teil, bei dem es die bevorzugtere Wahl ist, wenn Sie über die Plattform nachdenken, die Sie verwenden möchten. Der andere Unterschied besteht darin, dass ich jeden dazu ermutigen möchte, nachzuschauen, Sie wissen schon, unsere VergleichsseitenDort finden Sie auch sehr gutes Material. Aber um es kurz zusammenzufassen: NCache Die Objekt-Caching-Unterstützung bietet viele Funktionen, die anderen Produkten völlig fehlen. Für die SQL-Suche stehen uns beispielsweise ausgefeilte Funktionen zur Verfügung NCache. Wir haben einen Cache-Loader und einen Cache-Refresher. Das sind Funktionen, die es völlig einzigartig gibt NCache. Unser Read-Through- und Write-Through-Handler mit der Fähigkeit, .NET und auszuführen .NET Core Code auf der Serverseite, das ist eine absolut einzigartige Funktion NCache, und die Liste geht weiter, richtig. Einige der Funktionen können Sie also, wie Sie wissen, auf der Serverseite anpassen. Diese gibt es nur in NCache Und dann gibt es aus anwendungstechnischer Sicht viele Funktionen, die in anderen Produkten fehlen. Daher möchte ich jedem empfehlen, einen Blick auf unsere Vergleichsseite zu werfen. Es wurden einige Vergleiche veröffentlicht, Feature-für-Feature-Vergleiche, die Ihnen detailliertere Informationen dazu liefern.

Dies ist definitiv unsere Lieblingsfragestellung, egal ob es sich um ein Webinar oder sogar um eine technische Lösung handelt, es könnte Hazlecast sein, es könnte Scala sein, es könnte sein Redis, aber vielen Dank, Ron. Ja, ich denke, es kann losgehen. Bitte fahre fort. Sicher.

Erstellen Sie einen neuen Cluster-Cache

Lassen Sie mich das Produkt kurz vorführen, indem ich einen neuen Cluster-Cache erstelle. Nennen wir es Test-Cache. Okay, lassen Sie mich diesen Teil hier verschieben, haben Sie einfach Geduld mit mir. Okay.

Datenausgleich beim Hinzufügen eines Servers
Erstellen eines neuen Cluster-Cache

So, und wir haben gerade vier Caching-Topologien erklärt. Ich werde mich für die Partition des Replikat-Cache entscheiden, da diese mit der Option für die asynchrone Replikation am meisten empfohlen wird. Ich werde alle diese Standardeinstellungen beibehalten.

Datenausgleich beim Hinzufügen eines Servers
Auswählen einer Caching-Topologie

Machen Sie weiter und ich zeige Ihnen, wie einfach es ist, einen Cache mithilfe von GUI-Tools zu konfigurieren. Dies ist unser Webmanager, aber Sie können alles auch mit unseren PowerShell-Cmdlets erreichen und diese Bereitstellung bei Bedarf auch automatisieren. Ich füge Server eins hinzu, wo NCache ist installiert. Ich füge dann Server 2 hinzu. Also meine 2 Boxen mit NCache mit einer Größe von 2 Gigs wird, wissen Sie, eingerichtet. Meine Idee hier ist also, dass ich einen 2-Knoten-Cache-Cluster mit jeweils 2 GB Cache-Größe erstellen werde. Also insgesamt vier Gigs mit 2 Servern NCache Ist bereits installiert. Und dann werde ich meine Box verwenden, um eine Verbindung zu diesem Cache-Cluster herzustellen.

Datenausgleich beim Hinzufügen eines Servers
Cache-Partitionen und -Größe

TCP-Parameter. Dies ist der Port, den Sie anschließend einrichten müssen. Behalten Sie die Standardeinstellung bei oder geben Sie einen beliebigen Port an, bei dem die Firewall diesen Port nicht beeinträchtigt.

Datenausgleich beim Hinzufügen eines Servers
Cluter TCP-Parameter

Wenn Sie Verschlüsselung und Komprimierung einrichten müssen, ist dies der Bildschirm. Ich werde es einfach so lassen, wie es ist. Wählen Sie „Weiter“. Räumungen: Wenn Ihr Cache voll ist, können Sie dies auswählen. Eine Möglichkeit besteht darin, dass Ihr Cache einfach keine Schreibvorgänge durchführt. Sie erhalten die Fehlermeldung „Cache ist voll“. Eine andere Möglichkeit besteht darin, dass Sie die Räumung einrichten und basierend auf diesen Algorithmen einige Elemente zur Laufzeit aus dem Cache entfernen. Je nach Priorität, Nutzung können also am wenigsten kürzlich verwendete oder häufig verwendete Elemente entfernt werden, und fünf Prozent der Elemente werden aus dem Cache entfernt. Ich starte diesen Cache nach Abschluss und automatischem Start, sodass jedes Mal, wenn mein Server neu startet oder NCache Wenn der Server neu startet, ist er in der Lage, die gestoppten Caches neu zu starten.

Räumung aktivieren
Räumung aktivieren

Ich wähle Finish, und das war's. So einfach lässt sich ein Cache-Cluster einrichten. Und in Kürze wird mir eine andere Ansicht angezeigt, in der dieser Cache gestartet wird, und dann zeige ich Ihnen von dort aus einige Überwachungs- und Verwaltungsdetails. Wir haben einige detailliertere Videos zu Cache-Konfigurationen zur Verfügung. Wenn Sie also Fragen haben, lassen Sie es mich jetzt wissen, oder wir können uns auch auf diese Videos verlassen.

Ich kann den Monitor-Cluster auswählen und auswählen. Dadurch wird ein weiteres Dashboard geöffnet, mit dem ich meinen Cache vollständig überwachen kann. Es zeigt mir einen vollständig verbundenen Cache-Cluster, Anforderungsdurchsatzzähler, Latenzzähler und dann sind auch Ergänzungen, Abrufe und Aktualisierungszähler vorhanden. Ebenso zeigt es mir die CPU- und Speicherauslastung sowie Situationen an, in denen der Cache voll ist.

Räumung aktivieren
NCache Überwachen

Ich habe auch Dashboards für Clients sowie eine Berichtsansicht, in der wir serverseitige und clientseitige Dashboards sehen. Im Moment ist keine Anwendung damit verbunden, aber es gibt eine Möglichkeit, mit dieser Test-Stress-Taste eine gewisse Belastung zu simulieren. Ich kann also einen Dummy-Ladevorgang oder eine Aktivität in meinem Cache-Cluster starten, indem ich diesen Teststress aufrufe. Sobald ich das mache, werden Sie sehen, dass ein Client verbunden ist und diese Topologie erfordert, dass meine Daten verteilt werden, richtig. Einige Daten würden also auf Server 1 und andere auf Server 2 gehen. Dieser Client nutzt also beide Server gleichmäßig. Wie Sie sehen, kommen Anfragen an beide Server, sodass die Cache-Größe auf beiden Servern zunimmt.

Räumung aktivieren
Stresstest

Auf beiden Servern werden auch aktive und Backup-Partitionen angezeigt. Und wenn ich Ihnen schnell die Latenzzähler zeige, beträgt die Latenz unter einer Millisekunde, sogar im Mikrosekundenbereich, soweit es meine Operationen betrifft. Und ich kann sehen, dass das Client-Dashboard diese clientseitigen Statistiken anzeigt, und wir haben auch einen Bericht, der die serverseitigen Statistiken anzeigt.

Ron, ich habe eine Frage. Eigentlich sind ein paar Fragen eingegangen. Eine davon lautet:
Was ist Ihre Empfehlung zur Räumung? Und zumindest bei der Räumung: Können wir die Cache-Größe erhöhen oder verringern, wenn die Räumung deaktiviert ist?

Sicher. Sie wissen also, die Räumung muss je nach Anwendungsfall eingerichtet werden, richtig. Wenn Sie es sich leisten können, Daten zu löschen, dann ist das richtig. Durch die Räumung selbst werden einige Daten entfernt, wenn Ihr Cache voll ist. Im Idealfall müssen Sie das nie tun und Ihr Cache reicht noch aus, nicht wahr? Sie geben Ihrem Cache also genügend Größe oder genügend Speicher, damit er nie voll wird. Aber in den Fällen, in denen dies der Fall ist, kommt es zu einem Punkt, an dem es voll wird. Wenn es sich in diesem Fall um Daten handelt, die Sie jederzeit aus einer Backend-Datenbank rekonstruieren können, wird empfohlen, die Löschung zu aktivieren. Für ASP.NET-Sitzungen empfehlen wir beispielsweise nicht, Räumungen zu aktivieren, da Sie dadurch einige Benutzer entfernen würden, um Platz für die neuen Benutzer zu schaffen, und alle Benutzer über ihre wichtigen Daten verfügen, richtig. Es handelt sich also um Daten, die Sie in keinem Szenario verlieren möchten. Für solche Szenarien empfehlen wir Ihnen daher, die Cache-Größe zu erhöhen. Planen Sie Ihre Caching-Größe so, dass sie groß genug ist und in den Fällen, in denen sie voll wird NCache ermöglicht Ihnen, die Cache-Größe zur Laufzeit zu ändern. Sie können dies richtig bearbeiten und auf dieser Grundlage diese Einstellungen erhöhen und dann in einem laufenden Cache speichern. Es ist also schnell anwendbar und erhöht die Cache-Größe zur Laufzeit.

Ändern Sie die Cachegröße zur Laufzeit in NCahe
Ändern Sie die Cachegröße zur Laufzeit in NCache.

Weitere Fragen? Sieht so aus, als hätte das die Lösung gefunden, und ich werde ein paar davon für den Schluss aufheben, damit Sie Ihre Demonstration abschließen können. Sicher. Zurück zu meiner Demo-Umgebung: Sie könnten Clients hinzufügen. Ich kann beispielsweise meine Box als Client hinzufügen. Dies ist ein kurzer Überblick über eine Beispielanwendung, die ich von meiner Box aus ausführen kann. Dies ist beispielsweise auch bei GitHub verfügbar, wenn Sie also suchen NCache Auf GitHub würden Sie einige Beispiele sehen, und ich habe eines der Beispiele von dort extrahiert. Was Sie also wirklich in Ihrer Anwendung tun müssen, ist, dieses NuGet-Paket einzubinden Alachisoft.NCache.SDK, und wenn Sie interessiert sind App-Daten-Caching, das ist das Beispiel, das Sie in Betracht ziehen sollten. Und auf dieser Grundlage können Sie, sobald dies hinzugefügt wurde, einige Ressourcen in die Anwendung einbinden.

NCahe-Beispielanwendung
NCahe-Beispielanwendung – Grundoperationen

Dazu gehören bereits einige, Sie wissen schon, Bibliotheken von NCache, als Teil dieses neuen NuGet-Pakets. Und dann fügen Sie diese Referenz mit ein Alachisoft.NCache.Klient. Fügen Sie auch hinzu Laufzeit.Caching, richtig, und darauf basierend können Sie ein Cache-Handle definieren und darin haben wir eine Reihe von Methoden. Lassen Sie mich Ihnen zum Beispiel zeigen, wie Sie den Cache initialisieren. Lasst uns tatsächlich darauf eingehen. Hab Geduld mit mir. Es fällt mir schwer. Wie auch immer, aus irgendeinem Grund kann ich nicht wirklich hineingehen, ich glaube, es liegt ein Problem mit der Box selbst vor. Aber trotzdem sind die APIs ziemlich intuitiv. Lassen Sie mich es Ihnen aus unserem PowerPoint zeigen. In diesem Beispiel wird das tatsächlich verwendet. Ich kann es nicht demonstrieren, da ich nicht in den Code einsteigen kann. Es lässt mich nicht zu.

Das ist also ein Cache-Handle und das ist der Code, den ich zeigen wollte, dass der CacheManager.GetCache ermöglicht Ihnen die Verbindung zum Cache. Dann können Sie anrufen Cache.Get um tatsächlich Daten aus dem Cache zu erhalten. Ebenso können Sie anrufen cache.Hinzufügen or Cache.AddAsync Um beliebige Datensätze im Cache hinzuzufügen und auf ähnliche Weise einzufügen wie in upsert, wo Daten im Cache hinzugefügt und aktualisiert werden, können Sie auf ähnliche Weise aufrufen Cache.Entfernen.

Übersicht über App-Daten-Caching (API)
Übersicht über App-Daten-Caching (API)

Also das Sample ist verfügbar, die Sie herunterladen und in Ihrem Cache ausführen können. Sie müssen lediglich von einer Anwendungsseite aus auf den Cache verweisen. Es gibt eine Reihe von Konfigurationen. Sie können den Namen des Caches und die IP-Adresse inline angeben oder sich auf eine client.ncconf verlassen, die dieses NuGet-Paket in das Projekt einschließt. Wenn ich Ihnen also schnell einige Ressourcen zeige, werden tatsächlich viele Dateien hinzugefügt, und diese Datei hier ist eine Datei, die es Ihnen ermöglicht, eine Verbindung zum Cache herzustellen. Es kann also bereits eine Verbindung zu meinem „Democache“ hergestellt werden. Wenn ich es ausführe, führt es einige Aktivitäten in meinem Cache aus und startet die Caching-Vorgänge.

Ebenso habe ich ein weiteres Beispiel, das einige weitere Optionen bietet, zum Beispiel gab es eine Frage dazu nach innen suchen NCache, Rechts. Daher würde ich Ihnen empfehlen, dieses Beispiel hier zu verwenden. Dies ist für die SQL-Suche. Es wird erneut von GitHub heruntergeladen und verwendet erneut die Suche, verwendet Beispieldaten und ruft dann die Suche mithilfe von SQL auf. Und es verfügt hier über eine Reihe von Funktionen. Auch hier sind die Beispiele ziemlich intuitiv. Sie können Elemente einfügen und dann mit Namens-Tags abfragen, Sie können, Sie wissen schon, mit definierten Indizes oder Projektionen abfragen.

NCahe-Beispielanwendung
NCahe-Beispielanwendung – SQL-Suche

Leider kann ich aus Umweltgründen nicht näher auf diese Methoden eingehen, aber auch diese würden als guter Bezugspunkt für die Verwendung dienen NCache aus jeder Anwendung, die Caching innerhalb der Anwendung verwenden muss, oder für einen Anwendungsfall der Suche innerhalb der Anwendung.

Client-Cache

Es gab noch eine Frage zu Client-CacheDaher handelt es sich bei dieser Topologie auch um eine Option ohne Codeänderung. Alle Daten, die Sie aus einer darin enthaltenen Datenbank zwischenspeichern NCache, können Sie es mithilfe des Client-Cache weiter zwischenspeichern. Es ist ein Cache über einem anderen Cache. Funktioniert ohne Codeänderungen. Es handelt sich um einen synchronisierten Cache mit einem Cluster-Cache, sodass es keine Probleme mit der Datenkonsistenz gibt. Die Synchronisierung erfolgt durch NCache. Alle an einem Client-Cache vorgenommenen Aktualisierungen werden unbedingt an den Cluster-Cache weitergegeben und dann an andere Client-Caches weitergegeben. Im Cache wird die gesamte Synchronisierung verwaltet. Für Referenzdatenszenarien, in denen Sie nicht viele Schreibvorgänge haben, ist dies eine sehr empfehlenswerte Option.

WAN-Replikation

Ebenso NCache hat auch eine WAN-Replikation. Wir haben Aktiv-Passiv- und Aktiv-Aktiv-Topologien. So können Ihre gesamten Cache-Daten über unseren Bridge-Cache von einem Rechenzentrum zum anderen repliziert werden. Bridge selbst wird auf einem aktiven passiven Server gesichert, Sie haben also einen Quell-Cache und einen Ziel-Cache, eine unidirektionale Replikation oder eine Ost-West-Migration von Daten von einem Rechenzentrum zum anderen für DR-Szenarien oder für B. eine Ost-West-Migration, oder für Situationen, in denen Sie Daten aus einer Anwendung benötigen und diese für die Zielanwendung verwenden müssen. So könnten Sie komplette Cache-Daten von einem Rechenzentrum zum anderen übertragen.

Aktiv-Aktiv-Topologie
Aktiv-Aktiv-Topologie

Die andere Option ist Aktiv-Aktiv. Dabei sind beide Standorte aktiv, sodass Standort eins Daten an Standort zwei und Standort zwei Daten an Standort eins überträgt. Auch hier handelt es sich um eine Option ohne Codeänderung. Es ist nur eine Konfiguration. Sobald Sie eine Bridge eingerichtet haben, verbinden Sie zwei Caches miteinander und NCache übernimmt und startet die Replikation der Daten zwischen diesen Caches.

Und dies wird auch auf die Multi-Aktiv-Aktiv-Topologie ausgeweitet, sodass es nicht nur zwei Standorte geben muss, sondern es können auch drei, vier oder fünf Standorte sein, an denen alle Standorte Daten untereinander übertragen. Also, NCacheDie Möglichkeit, tatsächlich Daten von allen Websites gleichzeitig zu synchronisieren. Und das geschieht übrigens asynchron, sodass die Kosten für die Replikation weder auf der Anwendungsseite noch auf der Benutzerseite anfallen. Dies geschieht im Antrag. Sie haben sowohl hier als auch hier verbundene Client-Anwendungen. Aufgrund dieser WAN-Replikation stellen sie keine Leistungseinbußen fest. Es geschieht hinter den Kulissen von NCache. Lassen Sie mich wissen, wenn Sie Fragen haben. Lassen Sie uns an dieser Stelle die Präsentation und den Funktionsumfang abschließen. Zack, lass es mich wissen, wenn du Fragen hast.

Ja, wir haben ein paar. Und wissen Sie, ich schätze Ihre Geduld sehr, daher ist dies auch ein guter Zeitpunkt, um weitere Fragen einzuwerfen, falls Sie sich während der Präsentation diese Fragen gestellt haben. Beginnen wir also mit einem.
Wie stellen Sie sicher, dass Ihr Cache in einem fehlerfreien Zustand läuft? Erhalten wir Benachrichtigungen usw.? Woher wissen wir beispielsweise, ob ein Problem vorliegt?

Sicher. Wir haben Überwachungs- und Managementtools. Eine Sache könnte also sein, dass Sie eine visuelle Inspektion durchführen und den Zustand des Clusters sehen. Sie sehen, die CPU-Auslastung, die RAM-Auslastung. Wenn Sie Ihre Basislinie kennen, wissen Sie, wie viele Anfragen Ihre Anwendungen generieren und wie hoch die typische Auslastung ist NCache Basierend auf diesen Zählern können Sie mithilfe unserer Überwachungs- und Verwaltungs-Dashboards eine visuelle Inspektion durchführen. Und dann haben wir Warnungen für jede Situation, zum Beispiel, wenn Sie einen Cache starten, einen Cache stoppen, ein Knoten beitritt, ihn verlässt, die Cache-Größe voll wird oder ein Cluster in einen fehlerhaften Zustand geht, wie z. B. Split Brain, wir haben Warnungen, die wir in die Windows-Ereignisprotokolle einloggen. Und dann können Sie auch E-Mail-Benachrichtigungen einrichten NCache, und es kann auch eine E-Mail an Sie generieren. Es handelt sich hierbei also um eine proaktive Überwachung, die einige Alarme auslösen wird NCache, Wobei NCache würde alarmieren und Sie können darauf basierend Maßnahmen ergreifen. Und dann haben wir historische Daten, die in Form von Perfmon-Counter-Protokollen sowie Cache-Protokollen erfasst werden. Für Situationen, in denen Sie nicht wussten, was schief gelaufen ist, und einige Probleme damit gesehen haben NCache, wir können kommen und uns einbringen, und wir können einen Rückblick geben NCache Protokolle und nehmen Sie in diesem Fall eine Bewertung des Cache-Zustands vor. Es gibt also viele von Ihnen bekannte Möglichkeiten in dieser Hinsicht, die wir erkunden können.

Hört sich gut an. Eine andere Frage ist:
Was ist die neueste .NET-Version? NCache unterstützt derzeit Kunden?

Okay. Normalerweise sind wir auf dem neuesten Stand .NET framework Ausführung, .NET Core. .NET 6 wird derzeit unterstützt, das ist eine Voraussetzung dafür NCache. Sie müssen .NET 6 unbedingt installiert haben NCache Server. Aber Ihre Bewerbungen können auf jedem, wissen Sie, erfolgen. .NET framework, ich denke ab 3.5 4.0, 4.5 oder sogar 4.7, 4.8. Ihre Anwendungen können sich entweder auf einem beliebigen .NET- oder anderen Betriebssystem befinden .NET Core Rahmen. Es handelt sich lediglich um eine Einschränkung auf der Serverseite. Und sobald die Kompatibilität eines neueren Frameworks getestet wird, beispielsweise für .NET 7, testen wir es bereits in unserem QA-Labor. Sobald wir also die Freigabe erhalten haben, werden wir, wie Sie wissen, auch dafür einen offiziellen Support veröffentlichen.

Wunderbar. Eine andere Frage ist:
Was ist Ihrer Meinung nach die sichere Menge an geclusterten Caches zwischen meinen Cache-Servern? Kann ich beispielsweise 15 Cluster-Caches zwischen meinen Cache-Servern erstellen?

Okay. Erstens, NCache erzwingt keine Begrenzung der Anzahl der Caches, die Sie konfigurieren können. Wenn Sie sich meine Demoumgebung ansehen, habe ich tatsächlich zwei Caches konfiguriert. Sie können also so viele erstellen, wie Sie benötigen. Es gibt jedoch eine technische Empfehlung oder eine kapazitätsbezogene Empfehlung, die wir in einer Produktionsumgebung normalerweise empfehlen, nicht über vier bis fünf Caches hinauszugehen. Denn jeder Cache ist ein separater Cache-Cluster. Es wird tatsächlich alle Ressourcen für die Speicherung, für das Clustering und für die Kommunikation verbrauchen, außerdem entsteht ein Mehraufwand für die Clusterverwaltung. Wenn Sie also die Anzahl der Caches erhöhen, führen Sie tatsächlich zu diesem Kapazitätsproblem in dieser Umgebung oder innerhalb dieser Umgebung. Wir empfehlen daher, wenn möglich innerhalb von vier bis fünf Uhr zu bleiben. In einer Situation, in der Sie mehrere Caches benötigen, können Sie den Cache auf bis zu 10 erweitern. Aber wie gesagt, es ist wieder eine Empfehlung. Es gibt keine tatsächliche Grenze, die dies durchsetzt. Es handelt sich um eine allgemeine Empfehlung von unserer Seite.

Okay. Lassen Sie mich noch einen hinzufügen, da ich weiß, dass wir am Ende der Sitzung sind und ich weiß, dass die Leute noch andere Dinge im Docker haben.
Können NCache DR-Replikation bereitstellen?

Ja tut es. Die WAN-Replikationsfunktion, die ich gerade besprochen habe, die letzte Topologie, die die DR und die Notfallwiederherstellung abdeckt. Sites können mit den Daten der aktiven Site übertragen werden, sodass Sie über eine vollständig gesicherte DR-Site verfügen. Sie müssen lediglich auf der Anwendungsseite den Schalter umschalten. Da alle Daten bereits gesichert sind, kommt es nicht zu Datenverlusten, wenn ein Rechenzentrum komplett ausfällt oder Sie es zu Wartungszwecken selbst herunterfahren müssen.

In Ordnung. Ich denke, wir haben so viele getroffen, wie wir konnten. Meine Damen und Herren, bitte beachten Sie, dass wir auch außerhalb dieser Sitzungen für Sie da sind. Wir freuen uns sehr, Seite an Seite mit Ihnen zusammenzuarbeiten, wenn es darum geht, Ihre vorhandenen Konfigurationen zu prüfen, wenn Sie bereits Benutzer von sind NCache. Wenn Sie neu sind NCache, wir würden uns freuen, Ihnen eine Testversion zur Verfügung zu stellen und Ihnen in Hand-halten-Sitzungen zu zeigen, wie dies in Ihren integrierten Anwendungen funktionieren würde, aber vor allem seien Sie sich darüber im Klaren, dass Sie uns jederzeit kontaktieren können, wenn es darum geht Fragen zu NCache, oder sogar das Produkt verwenden und wenn Sie Hilfe benötigen. Es stehen uns viele neue Dinge bevor, auch die Veröffentlichung neuer Versionen. Bleiben Sie also auf dem Laufenden, wir werden bald weitere dieser Webinare veranstalten.

Ein Applaus für Ron. Ich weiß es wirklich zu schätzen, dass Sie sich heute die Zeit für eine Sitzung genommen haben, und ich freue mich auf unsere nächste. Dank euch allen. Danke, Zack. Natürlich. Alles klar, alle zusammen. Wir wünschen Ihnen allen einen wundervollen Tag und freuen uns darauf, Sie in unserem nächsten Webinar zu sehen. Und nur ein Haftungsausschluss: Nach Abschluss dieses Webinars werden wir eine Aufzeichnung des Webinars auf unsere Website hochladen, sobald alles erledigt und entstaubt ist. Wenn Sie also keine Gelegenheit hatten, Antworten auf Fragen zu erhalten, oder einen der von uns angesprochenen Punkte noch einmal durchgehen möchten, besuchen Sie unsere Website gerne noch einmal und schauen Sie sich die an aufgezeichnetes Webinar.

Also gut. Gruß an alle. Du hast einen guten. Danke Jungs. Tschüss.

Was macht man als nächstes?

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