Skalieren Sie .NET-Apps in Microsoft Azure mit verteiltem Cache

Aufgezeichnetes Webinar
Von Ron Hussain

Erfahren Sie, was die Skalierbarkeitsengpässe für Ihre .NET-Apps in Microsoft Azure sind und wie Sie ihre Skalierbarkeit mit verteiltem Caching verbessern können.

Dieses Webinar umfasst:

  • Schneller Überblick über Leistungsengpässe in .NET-Anwendungen
  • Was ist verteiltes Caching und warum ist es die Antwort in Azure?
  • Wo in Ihrer Anwendung können Sie verteiltes Caching verwenden?
  • Was sind einige wichtige Features in einem verteilten Cache?
  • Einige praktische Beispiele für die Verwendung eines verteilten Caches in Azure

Vielen Dank für Ihren Beitritt. Lassen Sie mich Sie schnell über das Webinar informieren. Zunächst einmal, mein Name ist Ron Hussain. Ich bin einer der technischen Experten bei Alachisoft und ich werde Ihr Moderator für das heutige Webinar sein. Ich werde alle technischen Details behandeln, die Sie benötigen, um Ihre .NET-Anwendungen in Microsoft Azure mit Hilfe eines verteilten In-Memory-Caching-Systems zu skalieren und das ich verwenden werde NCache als Beispielprodukt hierfür. Das ist unser Hauptprodukt für verteiltes Caching. Wir sind der stolze Hersteller von NCache und ich werde das als Beispielprodukt verwenden. Mehr von diesem Webinar wird nur zum Zuhören sein, was bedeutet, dass ich den größten Teil des Redens übernehmen werde, aber Sie können jederzeit teilnehmen. Sie können so viele Fragen stellen, wie Sie brauchen. Auf der rechten Seite Ihres Bildschirms befindet sich diese Registerkarte mit Fragen und Antworten. Wenn Sie die Registerkarte „Fragen“ erweitern, können Sie so viele Fragen posten, wie Sie möchten, und wie gesagt, ich werde dies im Auge behalten und alle Fragen beantworten, die Sie in diesem Fenster posten würden. Also, nur zur Bestätigung, wenn Sie mit der gleichen Registerkarte Fragen und Antworten bestätigen können, bestätigen Sie bitte, ob Sie meinen Bildschirm sehen und ob Sie mich gut hören können. Ich kann schnell loslegen. Okay. Ich sehe bereits, dass einige Fragen gepostet werden. Also vielen Dank für die Bestätigung.

Fangen wir damit an. Hallo zusammen, mein Name ist Ron Hussain, wie ich schon sagte, ich bin einer der technischen Experten bei Alachisoft und ich werde Ihr Moderator für das heutige Webinar sein. Das Thema, das wir heute ausgewählt haben, ist die Skalierung von .NET-Anwendungen in Microsoft Azure mit Hilfe eines verteilten In-Memory-Caching-Systems. Beim Alachisoft Wir haben verschiedene Produkte und das beliebteste ist NCache, ein verteiltes In-Memory-Caching-System für .NET- und Java-Anwendungen. NCache wird das Hauptprodukt sein, das ich als Beispiel verwenden werde, aber ich bleibe bei den Grundlagen von Microsoft Azure. Wie benutzt man NCache (ein verteiltes Caching-System) in Microsoft Azure und nutzen Sie es in Bezug auf Skalierbarkeit, Anwendungsleistung und allgemeine Systemzuverlässigkeit in Ihrer Architektur. Da Sie also bestätigt haben, dass Sie meinen Bildschirm sehen können, lassen Sie mich damit beginnen.

Was ist Skalierbarkeit?

Okay! bevor ich zum eigentlichen Thema übergehe. Ich werde über einige grundlegende Konzepte sprechen und mit dem beginnen, was Skalierbarkeit ist. Skalierbarkeit ist die Fähigkeit, die Transaktionslast der Anwendungen zu erhöhen und gleichzeitig Ihre Anwendungen nicht zu verlangsamen. Wenn Sie an diesem Punkt beispielsweise 1,000 Anfragen verarbeiten, wenn Ihre Anwendungslast wächst, melden sich mehr Benutzer an und verwenden dann Ihre Anwendungen stärker als die Last, z. B. wächst sie von 1,000 auf 10,000 Anfragen pro Sekunde. Jetzt möchten Sie diese erhöhte Last bewältigen, Sie möchten diese erhöhte Last bewältigen und gleichzeitig Ihre individuelle Anforderungsleistung nicht verlangsamen. Es sollte nicht so passieren, dass eine Anfrage darauf wartet, abgeschlossen zu werden und eine Anfrage gerade dabei ist, andere Anfragen zu erledigen. Diese Anfragen sollten genau so lange bearbeitet werden, wie sie zuvor in Anspruch genommen wurden. Aber gleichzeitig möchten Sie diese Skalierbarkeit, diese Fähigkeit, mit der Sie immer mehr Anfragen verarbeiten können, 10,000 Anfragen pro Sekunde oder 20,000 Anfragen pro Sekunde laden. Wenn Sie also die Möglichkeit haben, die Transaktionslast Ihrer Anwendungen zu erhöhen, ohne an Leistung einzubüßen, nennen wir das Skalierbarkeit. Und darauf konzentrieren wir uns heute.

Was ist lineare Skalierbarkeit?

Es gibt einen zugehörigen Begriff namens unbegrenzte Skalierbarkeit. Es ist lineare Skalierbarkeit. Lineare Skalierbarkeit bedeutet lineares Wachstum Ihrer Lese- und Schreibkapazität pro Sekunde. Zum Beispiel, wenn Sie weitere Server hinzufügen. Nachdem Sie also einen Server hinzugefügt haben, haben Sie eine gewisse Fähigkeit, Anforderungen für Lese- und Schreibvorgänge zu verarbeiten. Was ist, wenn Sie einen weiteren Server hinzufügen und dann weitere Server hinzufügen? Die Fähigkeit, mehr Server hinzuzufügen und durch das Hinzufügen weiterer Server Ihre Skalierbarkeitszahlen zu erhöhen, Sie erhalten immer mehr Kapazitätshandhabungen durch Ihre Anwendungsarchitektur, das bezeichnen wir als lineare Skalierbarkeit.

lineare Skalierbarkeit

Welche Anwendungen benötigen Skalierbarkeit?

Jetzt! Die nächste Frage wäre, welche Art von Anwendungen Skalierbarkeit benötigen würden. Die Antwort ist sehr einfach. Jede Anwendung, die möglicherweise Millionen von Anfragen von Benutzern verarbeiten muss. Wenn es sich um eine enorme Transaktionslast handelt. Normalerweise haben wir ASP.NET-Anwendungen. Wenn es ein Front-End gibt, zum Beispiel eine E-Commerce-Anwendung, vielleicht eine Flugbuchungsanwendung, alles, was öffentlich zugänglich ist, aber viel Verkehr hat, ist diese Anwendung der beste Kandidat für Skalierbarkeit.

Dann könnten wir WCF für .NET-Webdienste und eine dienstorientierte Architektur haben. Es könnte sich um einen Back-In handeln oder um Front-End-Webdienste, die möglicherweise von Ihren Webanwendungen oder von internen Anwendungen, die Sie möglicherweise haben, genutzt werden. Diese müssen möglicherweise eine große Menge an Anfragen verarbeiten, eine große Menge an Daten muss abgerufen und an die aufrufenden Programme geliefert werden. Daher benötigen diese Arten von Anwendungen auch Skalierbarkeit. Und dann möchten Sie vielleicht eine Art Infrastruktur einrichten, die die Menge der Anforderungslast bewältigen kann.

Dann haben wir Big-Data-Anwendungen. Das ist heutzutage ein geläufiges Schlagwort. Viele Anwendungen, viele Architekturen bewegen sich darauf zu, wo Sie möglicherweise riesige Datenmengen verarbeiten müssen, um sie auf verschiedenen Modulen, verschiedenen Prozessen zu verteilen, aber am Ende würden Sie es mit vielen Daten zu tun haben, sehr viel Anfragen, um diese zu bearbeiten.

Und dann haben wir großartige Computeranwendungen, bei denen Sie möglicherweise eine riesige Menge an Berechnungen durch die Verteilung auf mehrere kostengünstige Server verarbeiten müssen, das sind die Anwendungen. Im Allgemeinen sind also alle .NET-Anwendungen oder Java-Anwendungen, die möglicherweise eine Million Anfragen von Benutzern oder Back-End-Programmen verarbeiten müssen, die besten Kandidaten, die Skalierbarkeit in der Architektur aufweisen müssen.

Und wir werden uns einmal auf einige davon konzentrieren, wir gehen auch zu unseren Anwendungsfällen über. Und, Leute, wir stehen erst am Anfang dieses Webinars. Für diejenigen unter Ihnen, die gerade dabei sind, werde ich nur einige grundlegende Konzepte in Bezug auf verteiltes Caching behandeln. Ich werde über verschiedene Probleme sprechen, mit denen Sie konfrontiert werden, und dann über Lösungen und auch über die Bereitstellung eines verteilten Caches sprechen, z NCache bei MicrosoftAzure. Wenn Sie also Fragen haben, können Sie diese gerne in die Registerkarte „Fragen und Antworten“ eingeben. Und Sie können mir auch jederzeit Ihr Feedback geben. Wenn Sie teilnehmen möchten, können Sie erneut denselben Frage- und Antwort-Tab verwenden.

Was ist das Skalierbarkeitsproblem?

Als nächstes, nachdem wir definiert haben, was wir haben, was ist Skalierbarkeit? Was ist lineare Skalierbarkeit und welche Art von Anwendungen benötigen Skalierbarkeit? Der nächste und wichtigste Punkt dieses Webinars: Welche Art von Anwendungen oder welche Art von Skalierbarkeitsproblemen würden Ihre Anwendungen haben? Wo genau liegt das Skalierbarkeitsproblem?

Nun, Ihre Anwendungsarchitektur, es könnte eine ASP.NET-Anwendung oder ein WCF-Dienst sein, diese skalieren sehr gut und diese skalieren bereits linear. Sie können einen Load Balancer vorschalten und einfach mehr und mehr App-Server oder Webserver, Web-Front-End-Server hinzufügen und schon erhalten Sie eine lineare Skalierbarkeit Ihrer Architektur. Da gibt es also kein Problem. Das eigentliche Problem in Bezug auf die Datenspeicherung, diese Anwendungsserver oder Webserver, sie würden immer mit einigen Back-End-Datenquellen kommunizieren, wie z . Das kann keine große Transaktionslast bewältigen, und Sie haben hier nicht die Möglichkeit, immer mehr Server hinzuzufügen. Und dieses Diagramm erklärt dies gut.

Skalierbarkeitsengpass

Wo wir Datenspeicherung haben, gibt es einen Skalierbarkeitsengpass. Wir haben hier ein ASP.NET WCF-Beispiel, aber Sie können so viele Server hinzufügen, wie Sie möchten, Sie beginnen mit zwei Servern, wenn Ihre Last wächst, können Sie einen weiteren Server hinzufügen, einen Load Balancer davor stellen und dann alle gleichmäßig nutzen Ressourcen auf dieser Ebene. Es gibt also keine Probleme. Aber diese Anwendungsboxen oder Web-Front-End-Server würden immer mit einigen Back-End-Datenquellen kommunizieren. Und dies ist eine typische Bereitstellung, bei der wir Datenbankserver haben, die nicht so schnell starten und dann Skalierbarkeitsprobleme haben. Sie würden unter einer enormen Transaktionslast ersticken und sind dann in einigen Fällen auch ein Single Point of Failure. Aber am wichtigsten ist, dass diese Datenbankserver in jeder Anwendungsarchitektur eine sehr ernsthafte Bedrohung darstellen, und das ist ein Engpass bei der Skalierbarkeit. Sie würden also die gesamte Skalierbarkeit verlieren, die Sie auf dieser Ebene erreichen, wenn Sie alle Ihre Anforderungen zurück an einige Datenbankserver richten. Das Gleiche gilt für den ASP.NET-Sitzungsstatus. Wenn Sie dafür einen SQL Server oder einen Sitzungsstatusserver verwenden, liegt das daran, dass er darüber bleibt. Es wird immer ein einzelner Server sein, der alle Ihre Sitzungsdaten hostet, und die Sitzung ist eine sehr transaktionale Art von Daten, und dann benötigen Sie eine sehr skalierbare Datenquelle, um diese Anforderungen zu verarbeiten. Das ist also die größte Herausforderung, die wir mit Hilfe eines verteilten Caching-Systems anzugehen versuchen.

Die Lösung: Verteilter In-Memory-Cache

Die Lösung ist sehr einfach, wie gesagt, Sie könnten ein skalierbares verteiltes In-Memory-Caching-System verwenden. Wie zum Beispiel NCache um all die Probleme zu lösen, über die wir gerade gesprochen haben, die mit Datenquellen in Bezug auf die Skalierbarkeit verbunden sind.

Das nächste, was ich schnell tun werde, ist, über einige Grundlagen des verteilten In-Memory-Caching-Systems zu sprechen, wie z NCache. Es gibt einige wichtige Merkmale, die Sie darin finden würden NCache und ich gehe davon aus, dass dies Teil der meisten unserer verteilten In-Memory-Caching-Systeme sein wird, die verfügbar sind. Also, in dieser Hinsicht, so NCache Wenn ich definieren müsste, was wäre ein In-Memory-Caching-System?

Dynamisches Clustering

Es ist ein Cluster aus mehreren kostengünstigen Cache-Servern, die miteinander verbunden sind, Sie können sowohl ihren Arbeitsspeicher als auch ihre CPU-Kapazität ziehen. Sie werden also zu einer Kapazität zusammengefügt und Sie ziehen ihren Arbeitsspeicher sowie ihre CPU-Ressourcen. Physisch gesehen könnten es also mehrere Server sein, die nicht so teuer sind, wenn eine einfache Webserver-Konfigurationsbox ausreichen würde, das ist etwas, das Sie zum Caching verwenden könnten, und dann werden diese Server zusammengefügt und bilden eine logische Kapazität. Aus Sicht Ihrer Anwendung verwenden Sie also nur einen verteilten Cache, physisch könnten jedoch mehrere Server hinter den Kulissen arbeiten und die gesamte Rechenleistung und den gesamten Speicher in Anspruch nehmen, um diesen verteilten In-Memory-Cache zu erstellen. Das ist also das erste und wichtigste Merkmal, dass es sich nicht um diesen einzelnen Server handelt. Es würde mehrere Server haben, die in Kombination miteinander arbeiten. Wir sind also der Datenbank bereits voraus, wo wir nur einen Server hätten, der alle Daten hostet und alle Anfragen bearbeitet.

Datenkonsistenz

Das nächste Merkmal betrifft die Datenkonsistenz, da wir es hinter den Kulissen mit mehreren Servern zu tun haben, wäre die nächste Frage, wie wir mit Updates umgehen würden. Dieselben Daten werden beispielsweise auf einem oder zwei Servern aktualisiert oder wenn Replikate oder mehrere Kopien von Daten auf verschiedenen Servern vorhanden sind. Unabhängig davon, welche Topologie Sie verwenden, sollten die Daten also auf konsistente Weise aktualisiert werden. Sobald Sie also etwas auf einem beliebigen Cache-Server aktualisiert haben, sollten alle Aktualisierungen für alle Caching-Server im verteilten Cache sichtbar sein. Übrigens verwende ich etwas Sichtbares, ich verwende nicht den Begriff Replikation. Replikation ist ein weiteres Feature. Mit sichtbar meine ich also, dass Sie zum Beispiel ein Anfrage-Handle von Server eins erhalten, dass Daten aktualisiert werden. Wenn die nächste Anfrage an Server zwei geht und Sie dieselben Daten auch auf Server zwei hatten, sollten Sie den aktualisierten Wert und nicht den veralteten Wert aus dem verteilten Cache erhalten.

Dies ist also ein sehr wichtiges Merkmal in Bezug auf verteilten Cache, bei dem alle Ihre Datenaktualisierungen konsistent auf allen Caching-Servern angewendet werden sollten. Und dafür sollte der verteilte Cache verantwortlich sein, nicht Ihre Anwendung. Die Architektur sollte dieses Modell unterstützen.

Lineare Skalierbarkeit

Die nächste Sache, die mit unserem heutigen Thema übereinstimmt, ist die lineare Skalierung. Daher sollte der verteilte Cache sowohl für die Transaktions- als auch für die Speicherkapazität linear skaliert werden. Es sollte Ihnen verraten, wo Sie mehr und mehr Caching-Server hinzufügen können, und da Sie mehr Caching-Server hatten, erreichen Sie eine lineare Skalierbarkeit. Ich hatte Ihnen vorhin eine Grafik gezeigt. Also, darauf beziehe ich mich hier drüben, wo Sie mehr und mehr Server hinzufügen, Sie sollten die Kapazität erhöhen, wie viele Anfragen Sie handhaben können und gleichzeitig wie viele Daten, wie viele Daten darin gespeichert werden können Cache linear verteilt. Das ist also ein sehr wichtiges Merkmal, das Ihnen eine lineare Skalierbarkeit aus dem verteilten Cache bietet und Ihre gesamte Anwendungsarchitektur sehr skalierbar macht.

Datenreplikation für Zuverlässigkeit

Viertes wichtiges Merkmal. Dies ist Option eins, Sie können eine Topologie auswählen, die auch die Replikation unterstützt. Sie verfügen über einen verteilten Cache, der Daten aus Gründen der Zuverlässigkeit serverübergreifend repliziert. Wenn ein Server ausfällt oder Sie ihn zu Wartungszwecken offline nehmen müssen, sollten Sie sich keine Sorgen über Datenverlust oder Anwendungsausfall machen. Dies sind also einige wichtige Merkmale des verteilten Caches. Ich werde diese in den kommenden Folien immer detaillierter behandeln, und dann werden wir auch über die Azure-spezifische Bereitstellung eines verteilten Caches sprechen. Wie verwende ich den verteilten Cache in Microsoft Azure? Bitte lassen Sie mich wissen, wenn es bisher noch Fragen gibt. Bitte verwenden Sie die Registerkarte Fragen und Antworten. Ich sehe im Allgemeinen einige erhobene Hände, Go-to-Meeting hat dieses Problem, wo es viele erhobene Hände zeigt, aber lassen Sie es mich bitte wissen, wenn es sich tatsächlich um Fragen handelt. Bitte geben Sie in die Registerkarte Fragen und Antworten ein und ich werde diese sehr gerne für Sie beantworten. Ich denke, wir sollten weitermachen.

Hier ist die typische Bereitstellung eines verteilten Caches. Dies ist eine allgemeine Bereitstellung, sie ist nicht spezifisch für Microsoft Azure.

NCache Bereitstellung in Microsoft Azure

Ich werde auf die Bereitstellung von verschieben NCache in Microsoft Azure direkt danach. In der Regel kann es also vor Ort oder in der Cloud sein. Es gibt nicht viele Dinge, die sich in Bezug auf die Bereitstellung ändern werden NCache geht. So würden Sie normalerweise bereitstellen NCache, wo Sie eine dedizierte Caching-Ebene hätten.

Einsatz

Dies könnten physische Boxen vor Ort sein, dies könnten gehostete Box-VMs sein, oder dies könnten auch echte Cloud-VMs sein, bei denen Sie einfach eine VM aus der Cloud erhalten und diese dann zum Caching verwenden. Sie können einen Cache auf separaten dedizierten Caching-Boxen formulieren, das wird empfohlen. Eine bevorzugte Plattform ist 64-Bit und die einzige Voraussetzung für NCache ist .NET 4.0. Und dann Ihre Anwendungen, diese können auch lokal oder gehostet sein. Diese könnten direkt auf den Servern in IIS bereitgestellt werden oder es könnten Web- oder Worker-Rollen in Bezug auf Microsoft Azure sein. Sie alle können sich für die Datenanforderungen mit dieser Caching-Ebene verbinden. Sie könnten eine separate Installation für diese haben, eine separate Ebene für diese, oder Sie haben einfach alles auf derselben Ebene. Beide Modelle werden unterstützt. Aber sobald Sie vorstellen NCache in Ihre Anwendungsarchitektur, sobald es für das Objekt-Caching oder für das Session-Caching bereitgestellt wird, werde ich behandeln NCache Anwendungsfälle, sobald wir uns den Anwendungsfällen zuwenden.

Sobald Sie anfangen zu verwenden NCache, es erspart Ihnen teure Reisen durch den Rücken und Datenbanken. Und dann erhalten Sie genau hier eine sehr skalierbare Plattform, auf der Sie so viele Server hinzufügen können, wie Sie möchten, und Sie können skalieren. Vergleichen Sie dies nun mit dem Diagramm, das ich Ihnen zuvor gezeigt habe.

Skalierbarkeitsengpass

Sie hatten genau hier eine sehr skalierbare Plattform, aber dies war die Hauptstreitquelle. Die Hauptquelle für Skalierbarkeitsengpässe. Wenn Sie das vergleichen, haben Sie jetzt eine sehr skalierbare Plattform zwischen Ihrer Anwendungsschicht und Ihrer Datenbank. Dies ist eine sehr skalierbare Plattform, und Sie haben jetzt wieder eine Datenquelle in Bezug auf den verteilten Cache, der wiederum sehr skalierbar ist. Sie können beliebig viele Server hinzufügen. Wenn Ihre Last wächst, müssen Sie sich keine Sorgen machen, dass Back-End-Datenquellen zu diesem Zeitpunkt gedrosselt werden. Sie können so viele Server hinzufügen, wie Sie möchten, und Ihre Kapazität zur Verarbeitung von Anfragen linear erweitern NCache. Lassen Sie mich wissen, wenn Sie Fragen zur Bereitstellungsarchitektur von haben NCache aber insgesamt ist es sehr einfach.

Als nächstes geht es um die Bereitstellung NCache bei MicrosoftAzure. Also, dass ich unsere Website nutzen werde. Ich werde ein Diagramm von dort verwenden, also haben Sie bitte etwas Geduld mit mir. Die Bereitstellung in Microsoft Azure unterscheidet sich nicht wesentlich von der Bereitstellung vor Ort.

ncache-Azure-Virtual-Machine

Daher wird zunächst empfohlen, dass dies die Basisbereitstellung ist, bei der Sie alles im selben virtuellen Microsoft Azure-Netzwerk haben. Wenn Sie beispielsweise ein virtuelles Netzwerk erstellen und dann über virtuelle Microsoft Azure-Computer verfügen, erfolgt die serverseitige Bereitstellung immer auf VMs. Das ist also das Modell, für das wir uns entschieden haben NCache bei MicrosoftAzure. Sie erstellen eine VM, oder indem Sie dasselbe virtuelle Netzwerk auswählen, erstellen Sie alle Ihre VM-Bereitstellungen. Sie können beispielsweise wie hier gezeigt mit drei VMS beginnen und dann beliebig viele VMs zu dieser Caching-Schicht hinzufügen. Vorzugsweise möchten wir auch, dass sich Ihre Anwendungen im selben virtuellen Azure-Netzwerk befinden. Alles kann also Teil desselben virtuellen Netzwerks sein, in dem Sie die meisten Leistungs- und Stabilitätsvorteile erzielen NCache. Wenn es keine strengen Anforderungen dafür gibt, können Sie Anwendungen immer auf verschiedenen VMs bereitstellen.

Basierend auf diesem Modell kann sich Ihre Anwendungsarchitektur also auf einer VM selbst befinden, was bedeutet, dass Ihre Anwendung direkt auf IIS bereitgestellt werden kann, die Sie selbst verwalten und dann die volle Verantwortung dafür übernehmen, oder es könnte meine Azure-Webrolle oder beide Workerrollen sein Modelle werden auf der Anwendungsseite aber unterstützt NCache Die serverseitige Bereitstellung erfolgt immer auf den VMs. So würden Sie sich also bewerben NCache und ich werde es Ihnen tatsächlich zeigen, sobald wir zu unserem praktischen Teil übergehen.

Eine andere Art der Bereitstellung besteht darin, dass Sie ein bestimmtes virtuelles Azure-Netzwerk für sich haben könnten NCache Server-VMs, bei denen alle Ihre Server Teil desselben virtuellen Netzwerks sind. Am besten auch das gleiche Subnetz. Und dann könnten sich Ihre Anwendungen auch in einem separaten virtuellen Netzwerk befinden. In diesem Fall müssten Sie irgendeine Art von Ports weiterleiten lassen NCache virtuelles Netzwerk. Beispielsweise werden hier private Ports auf den öffentlichen Port abgebildet und Ihre Anwendungen verwenden diesen öffentlichen Port, um tatsächlich eine Verbindung herzustellen NCache. Möglicherweise müssen Sie hier einige zusätzliche Konfigurationen vornehmen, aber wir haben dafür ein ausführliches Hilfedokument zur Verfügung, aber es funktioniert ohne Probleme. Sie könnten diesen virtuellen Netzwerkserver so einrichten, dass er von einem anderen virtuellen Netzwerk aus auf Caching-Server zugreift. Und Sie könnten sogar die Cache-to-Cache-Anwendungen mit Hilfe derselben Funktion haben.

Dies ist also eine andere Art der Bereitstellung, aber der bevorzugte Ansatz, der empfohlene, besteht darin, dass Sie alle Ihre Cache-Server sowie Anwendungsserver in demselben virtuellen Microsoft Azure-Netzwerk bereitstellen. Dann würden Sie am meisten davon profitieren NCache. Bitte lassen Sie mich wissen, wenn es irgendwelche Fragen gibt.

Wir haben auch einen Azure-Bereitstellungsleitfaden auf unserer Website verfügbar, wenn ich Sie zum Support bringen könnte. Lassen Sie mich eigentlich hier zur Dokumentation gehen. In der Dokumentation haben wir einen speziellen Leitfaden, einen Bereitstellungsleitfaden, der all diese Details sehr detailliert behandelt.

Okay. Es gibt eine Frage. Wie ist NCache anders als Redis? Okay. Die heutige Agenda ist mehr zu nutzen NCache oder mithilfe eines verteilten Caching-Systems in Microsoft Azure. Wir bieten ein separates Webinar an Redis gegen NCache. Wo wir über verschiedene Funktionen sprechen, die in verfügbar sind NCache und dann nicht Teil von Redis. Für eine schnelle Antwort darauf würde ich empfehlen, dass Sie gleich hier zu unserer Vergleichsseite gehen, und dann haben Sie eine Redis gegen NCache. Sie können sich schnell dafür anmelden und dann sollten Sie in der Lage sein, alle Funktionen im Vergleich von Funktion zu Funktion zu sehen NCache gegen Redis. Und genau dafür haben wir auch ein Webinar, nämlich ein Webinar auf unserem YouTube-Kanal. Wenn Sie sich also einfach bei YouTube anmelden, suchen Sie nach Alachisoft und dann unter Alachisoft es wird eine Menge Videos geben und eines dieser Videos hätte Redis Quellen NCache Titel. Dazu gibt es ein separates Webinar. Ich hoffe, das beantwortet Ihre Frage. Dazu gibt es noch weitere Fragen. Okay. Da wir die Bereitstellung bereits behandelt haben, lassen Sie es mich bitte wissen, wenn Sie Fragen zur Bereitstellung haben. Ich werde diese Fragen sehr gerne für Sie beantworten.

Allgemeine Verwendung von verteiltem Cache

Als nächstes ist, wie man den verteilten Cache verwendet? Was sind die gemeinsamen Bereiche, in denen Sie ein verteiltes Caching-System verwenden würden? NCache? Ich habe gerade drei der gebräuchlichsten aufgelistet, aber diese könnten spezifisch für die Branche sein, dies könnte spezifisch für Ihre Anforderungen, Anwendungsfälle sein, es könnten verschiedene Möglichkeiten sein, die Sie verwenden könnten NCache. Aber in erster Linie werden diese in diese drei Kategorien eingeteilt.

Zwischenspeichern von Anwendungsdaten

Die erste Kategorie ist das Zwischenspeichern von Anwendungsdaten. Sie können ein verteiltes Caching-System wie verwenden NCache als Anwendungsdaten-Caching. Alles, was zuvor in der Datenbank vorhanden war und Ihre Anwendungen in die Datenbanken gingen, können Sie jetzt einfügen NCache. Und Sie können einen im Vergleich zur Datenbank schnelleren In-Memory-Cache erhalten, um auf alle Daten zuzugreifen, die Sie zuvor in der Datenbank hatten. Sie verbessern also Ihre Anwendungsleistung und skalieren, was am wichtigsten ist, linear, wo die Datenbank dies nicht kann. Sie können auf einige dramatische Ebenen skalieren. Sie können eine große Menge an Transaktionslasten bewältigen und so viele Server hinzufügen, wie Sie möchten. Und dazu gehört NCache API. Sie könnten einfach Daten in einem Schlüssel-Wert-Paar hinzufügen. Der Schlüssel ist eine Zeichenfolge und der Wert ist ein .NET-zugelassenes Objekt. Sie können Ihre Domänenobjekte, Sammlungen, Datensätze, Bilder zwischenspeichern. Jede Art von anwendungsbezogenen Daten kann mit unserem Objekt-Caching-Modell zwischengespeichert werden. Und dann würde Ihnen dies einige enorme Vorteile in Bezug auf die Funktionen bringen, die wir auf der Daten-Caching-Seite anbieten.

Zuverlässiger und skalierbarer Cache für ASP.NET-spezifische Daten

Der nächste Anwendungsfall betrifft ASP.NET-spezifische Anwendungen. Zum Beispiel ASP.NET und es gibt einen sehr einfachen Einstieg NCache. Wir haben hier drei Möglichkeiten.

ASP.NET-Sitzungsspeicher

Wir haben ASP.NET-Sitzungszustandsspeicher. Sie können es in MVC- oder ASP.NET-Webformularen verwenden, oder jede ASP.NET-Webanwendung kann davon Gebrauch machen. Ohne Codeänderungen können Sie Ihre Sitzungsdaten in einem verteilten Cache speichern. Und im Gegensatz zu Datenbank- oder Statusservern wird es kein einzelner Server sein. Es könnte mehrere Server haben. Es ist also sehr skalierbar, es ist sehr zuverlässig, weil wir Sitzungsdaten serverübergreifend repliziert haben, und Sie erhalten auch eine sehr gute Leistung, weil es sich im Speicher befindet. Und das alles ohne Codeänderungen. Und mit NCache, haben wir auch eine Sitzungsbereitstellung an mehreren Standorten. Sie könnten zwei Rechenzentren haben und Ihre Sitzungen ohne Codeänderungen synchronisieren. Dies sind also einige erweiterte Funktionen, die Sie nutzen können. Außerhalb unserer Sitzungsstatusunterstützung für ASP.NET-Anwendungen, und dies erfordert keine Codeänderungen.

ASP.NET View State Caching

Das nächste Feature dazu ist ASP.NET view state, das ist auch keine Codeänderungsoption. Für diejenigen unter Ihnen, die es wissen möchten, was ist der Ansichtsstatus? Ansichtszustand ist clientseitige Zustandsverwaltung. Wenn beispielsweise Ansichtszustände nur auf Webformulare angewendet werden, hat die MVC-Architektur Ihren Zustand nicht mehr. Bei ASP.NET-Webformularen tragen alle Steuerelemente, alle Schaltflächen oder alle Widgets auf Ihren Seiten dazu bei, den Ansichtsstatus zu erstellen, der in Bezug auf unsere Antwort an den Browser zurückgesendet wird, mit dem der Ansichtsstatus verbunden ist das Antwortpaket und dann an den Browser zurückgesendet. Auf der Browserseite wird es nie wirklich verwendet. Es bleibt einfach dort und wenn Sie zurückschreiben, kommt der Ansichtsstatus zusammen mit dem Anforderungspaket auf dem Server, und dann verwenden Sie den Ansichtsstatus tatsächlich. Es wird also immer als Teil der Antwort an den Browser zurückgesendet und als Teil der Anfrage an den Server zurückgebracht, sodass Ihre Anfrage- und Antwortpakete schwerer werden. Es wird nie wirklich auf der Browserseite verwendet. Es wird immer serverseitig verwendet. Es verbraucht viel Bandbreite, insbesondere bei großer Transaktionslast.

Wir haben also viele Probleme in Bezug auf Leistung und Bandbreitennutzung. Mit NCache Sie können Ihre Ansichtszustände auf der Serverseite speichern, Sie könnten sie auf der Serverseite behalten NCache, senden Sie ein kleines Dummy-Token an den Browser zurück. Ihre Ansichtszustände werden also kleiner und verbessern Ihre Kosten für die Bandbreitennutzung. Sie sparen dabei eine Menge Bandbreite. Gleichzeitig sind kleinere Pakete einfacher zu verarbeiten. Ihr Anfrage- und Antwortpaket wird kleiner und das trägt dann auch zur Leistungssteigerung Ihrer Anwendung bei. Sie erhalten also Leistung und eine Reduzierung der Kosten für die Bandbreitennutzung, sobald Sie unsere verwenden ASP.NET view state Anbieter. Und dies ist auch eine Option ohne Codeänderung für NCache. Und Sie können es ganz einfach in Microsoft Azure verwenden.

ASP.NET-Ausgabecaching

Das dritte wichtige Feature hier ist der ASP.NET Output Caching Provider, sowohl für ASP.NET MVC als auch für Webfarmen. Wenn Sie in Ihrer Anwendung ziemlich statische Inhalte auf vier verschiedenen Seiten für verschiedene Anforderungen haben, ist es sinnvoll, sie zwischenzuspeichern, anstatt alle diese Anforderungen erneut zu rendern und erneut auszuführen, obwohl Sie als Antwort auf diese Anforderungen dieselben Daten erhalten Verwenden Sie dann die zwischengespeicherte Ausgabe für nachfolgende Anforderungen. Wenn Sie die gleiche Anfrage erneut erhalten, gehen Sie nicht durch den Drill und holen Sie dann einfach den Cache-Inhalt heraus NCache direkt. Wir erlauben Ihnen also, ganze ASP.NET-Seitenausgaben in zu speichern NCache und für spätere Anfragen verwendet werden. Und das ist auch keine Codeänderung, denn es spart viel Rechenleistung, viel Ausführungszeit, viele Performance-Vorteile werden mit Hilfe unseres ASP.NET Output Cache Providers erzielt.

Das sind also drei wichtige Aspekte, mit denen Sie schnell loslegen können. Dies sind alles Optionen ohne Codeänderung. Die Einrichtung kann 10 bis 15 Minuten dauern, und dann können Sie alle Vorteile sehen, die wir gerade besprochen haben. Und in Microsoft Azure gibt es dafür eigentlich keinen Ersatz. Sie würden am Ende Standardoptionen verwenden, was bedeutet, dass Sie alles im Prozessor in dieser Datenbank behalten. Und wir haben bereits darüber gesprochen, welche Probleme damit verbunden sind. Ich würde Ihnen daher dringend empfehlen, sich diese Funktionen zunächst einmal anzusehen und dann, sobald Ihr Anwendungsfall fortschreitet, damit zu beginnen, unser Anwendungsdaten-Caching parallel dazu zu verwenden. Der dritte wichtige Anwendungsfall von NCache, verbringe ich viel Zeit damit, damit ich die Bedeutung der Verwendung eines verteilten Caches in Ihren Anwendungsarchitekturen vermitteln kann. Bitte lassen Sie mich wissen, wenn es zu diesem Zeitpunkt noch Fragen gibt.

Skalierbare Laufzeitdatenfreigabe durch Messaging

Nun dritter wichtiger Anwendungsfall von NCache ist, dass Sie es mit Hilfe unseres Messaging-Supports auf skalierbare und sehr zuverlässige, skalierbare Weise für die gemeinsame Nutzung von Laufzeitdaten verwenden können. Ähnlich wie die MSN-Warteschlange und der Java-Nachrichtendienst. Wir haben auch eine Messaging-Plattform. Da hast du schon Daten im Cache. Zum Beispiel werden einige Daten hinzugefügt, Sie haben einige Produktkataloge, ein Produkt wird hinzugefügt, aktualisiert oder aus dem Cache entfernt, Sie möchten benachrichtigt werden, basierend darauf, dass Sie unser System zur Weitergabe von Ereignisbenachrichtigungen haben könnten, das sich ausbreiten und dann benachrichtigen kann verwenden, wenn sich Daten im Cache ändern. Es gibt also Nachrichten auf Datenebene, an die Sie sich anschließen und bei Bedarf diese Nachrichten verwenden können, und dann könnte es auch einige benutzerdefinierte Anwendungsnachrichten geben, bei denen eine Anwendung mit Hilfe unserer Nachrichtenplattform mit anderen Anwendungen kommunizieren kann. Es handelt sich also um eine sehr leistungsstarke gemeinsame Nutzung von Daten, da eine Anwendung Daten mit einer anderen gemeinsam nutzen kann und es sich dann auch um eine gemeinsame Nutzung von Nachrichten zwischen verschiedenen Anwendungen handeln kann, die dasselbe verteilte Caching-System verwenden. Dies ist also ein sehr mächtiges Feature, viele Leute wissen es nicht, aber es ist sehr mächtig in Bezug auf die Möglichkeiten, die es bietet.

Bitte lassen Sie mich wissen, dass es Fragen gibt. Dies sind einige wichtige Anwendungsfälle von NCache, die ich schnell abdecken werde. Sobald Sie planen, einen verteilten Cache in Microsoft Azure zu verwenden, gibt es ein sehr wichtiges Konzept, sehr wichtig, um die Szene zu machen, würde ich sagen.

Welche Daten zwischenspeichern?

Welche Daten müssen zwischengespeichert werden? Jetzt ist der verteilte Cache normalerweise für die am leichtesten zugänglichen Daten, bei denen Sie mehr Lese- und Schreibvorgänge haben und diese Daten dann für nachfolgende Anforderungen immer wieder gelesen werden. Ich habe Daten in zwei verschiedene Kategorien eingeteilt. Sie könnten permanente Daten haben, die normalerweise in der Datenbank vorhanden sind, sie können sich ändern, aber die Änderungshäufigkeit ist nicht so groß, deshalb habe ich sie weiter in Referenz- und Transaktionsdaten unterteilt. Aber wir haben permanente Daten und dann haben wir transiente Daten. Permanente Daten sind diejenigen, die wirklich in der Datenbank vorhanden sind, und es ist sehr wichtig, dass Sie sie zwischenspeichern. Damit Sie Ihre teuren Fahrten zu den Backend-Datenbanken reduzieren.

Und dann haben wir transiente Daten, die temporäre Daten sind, die eine kurze Länge haben und möglicherweise nur für den Umfang des aktuellen Benutzers oder nur für den Umfang des aktuellen Anwendungszyklus für diese Angelegenheit gültig sind. Es könnten Benutzerkonfigurationen sein, es könnten Benutzereinstellungen sein, es könnten Benutzer-ASP.NET-Sitzungen sein, das Zwischenspeichern von Statusausgaben. Es gehört normalerweise nicht in die Datenbank, aber es ist sinnvoll, es im Cache zu behalten, je nachdem, wie schnell Sie es brauchen und wie oft Sie es brauchen, nachdem Sie es zwischengespeichert haben. Dann können diese Daten weiter in andere Kategorien unterteilt werden. Zum Beispiel, wenn die Daten hauptsächlich gelesen werden, mehr Lesevorgänge als Schreibvorgänge oder eine gleiche Anzahl von Lese- oder Schreibvorgängen. Referenzen sind also mehr Lese- als Schreibvorgänge, und Transaktionen sind sowohl Lese- als auch Schreibvorgänge.

Und dann haben wir transiente Daten, die temporäre Daten sind, die eine kurze Länge haben und möglicherweise nur für den Umfang des aktuellen Benutzers oder nur für den Umfang des aktuellen Anwendungszyklus für diese Angelegenheit gültig sind. Es könnten Benutzerkonfigurationen sein, es könnten Benutzereinstellungen sein, es könnten Benutzer-ASP.NET-Sitzungen sein, das Zwischenspeichern von Statusausgaben. Es gehört normalerweise nicht in die Datenbank, aber es ist sinnvoll, es im Cache zu behalten, je nachdem, wie schnell Sie es brauchen und wie oft Sie es brauchen, nachdem Sie es zwischengespeichert haben. Dann können diese Daten weiter in andere Kategorien unterteilt werden. Zum Beispiel, wenn die Daten hauptsächlich gelesen werden, mehr Lesevorgänge als Schreibvorgänge oder eine gleiche Anzahl von Lese- oder Schreibvorgängen. Referenzen sind also mehr Lese- als Schreibvorgänge, und Transaktionen sind sowohl Lese- als auch Schreibvorgänge. Sie könnten also in Betracht ziehen, alle Ihre Referenzdaten zwischenzuspeichern, dies sind normalerweise Ihre permanenten Daten, die in die Datenbank gehören. Versuchen Sie, es in den verteilten Cache zu bringen, und speichern Sie so viel davon wie möglich, damit Sie nicht zu den Datenbanken zurückkehren. Und Sie erhalten die meisten Leistungsvorteile, die Sie benötigen. Und dann sollten Sie erwägen, einige Ihrer Transaktionsdaten zwischenzuspeichern, z. B. ASP.NET-Sitzungsstatus, Ansichtsstatus und Ausgabecaching, da Sie beim Abrufen dieser vorübergehenden Daten oder Transaktionsdaten aus den Back-End-Datenquellen keine Leistung verlieren möchten . Stellen Sie sich je nach Anzahl der Benutzer, wenn Sie Millionen von Benutzern angemeldet haben, ein Szenario vor, in dem Sie die Datenbank zweimal pro Benutzer aufrufen, um zu sehen, wie viel Zeit Sie damit verbringen würden, diese Daten aus einer langsameren Quelle zu erhalten , aus der Back-End-Datenquelle. Aus dem Cache kommen und dafür sollten Sie unbedingt in Betracht ziehen, es im verteilten Cache zwischenzuspeichern.

Überblick über die Caching-API

So sieht Caching aus. Es ist eine Hash-Tabelle wie Interface. Wir haben einen stringbasierten Schlüssel und dann ein Objekt als Wert. Das Objekt kann ein beliebiges .NET-Parameterobjekt sein. Sie können alles, was von .NET zugelassen ist, als Objektcache speichern. Während String Key, könnte man sich eine sinnvolle Key-Formation einfallen lassen. Zum Beispiel alle Mitarbeiter mit der Mitarbeiter-ID 1000, ein Mitarbeiter mit der Mitarbeiter-ID 1000 kann hier mit diesem Schlüssel hinterlegt werden. Alle Bestellungen dieses Mitarbeiters können diesen Schlüssel haben, wo Sie Mitarbeiteraufträge und dann die ID dieses Mitarbeiters haben. Es könnte auch einen Laufzeitparameter geben. Und dann könnten Sie eine Mitarbeiteranfrage stellen. Sie haben beispielsweise die Abfrage „Verantwortlich“ zwischengespeichert, und das Argument war, den Code „Mitarbeiter“ basierend auf einem Titel zu finden, der „Manager“ entspricht. Sie könnten also eine Sammlung als einzelnes Objekt im Cache speichern. Dies ist also nur ein Beispiel dafür, wie der Cache-Schlüssel formuliert werden kann, aber Sie können sich bei Bedarf jede Schlüsselgrundlagentechnik ausdenken. Es ist nur ein Beispiel, verwenden Sie, was für Ihre Anwendung sinnvoller ist.

Leute, bitte lasst es mich wissen, wenn es irgendwelche Fragen gibt? Ich sehe heute nicht viele Fragen. Bitte lassen Sie mich wissen, wenn es bisher noch Fragen gibt. Lassen Sie mich auch wissen, wenn ich bei einem bestimmten Abschnitt zu langsam oder zu schnell fahre, damit ich das Tempo beibehalten kann. Sie können mir Ihr Feedback auch über dieselbe Frage-Antwort-Registerkarte geben, und ich werde sogar mehr Zeit für eine bestimmte Funktion aufwenden.

Leute, bitte lasst es mich wissen, wenn es irgendwelche Fragen gibt? Ich sehe heute nicht viele Fragen. Bitte lassen Sie mich wissen, wenn es bisher noch Fragen gibt. Lassen Sie mich auch wissen, wenn ich bei einem bestimmten Abschnitt zu langsam oder zu schnell fahre, damit ich das Tempo beibehalten kann. Sie können mir Ihr Feedback auch über dieselbe Frage-Antwort-Registerkarte geben, und ich werde sogar mehr Zeit für eine bestimmte Funktion aufwenden. Okay. Es gibt eine Frage, was ist mit räumlichen Daten? Okay. Können wir solche Daten auch abfragen? Ja. Absolut, wir haben eine sehr starke Abfrageunterstützung, dieses Objekt kann von jedem Typ sein. Lassen Sie mich Ihnen sagen, dass dies alle Arten von Daten abdeckt, die Sie zwischenspeichern möchten. Jetzt könnten diese Daten basierend auf verschiedenen Argumenten abgefragt werden, basierend auf verschiedenen Parametern, die Sie übergeben. Tatsächlich haben wir eine sehr starke Objektabfragesprache, die ich hier geplant habe. Wir haben also parallele Abfragen mit Hilfe der Objektabfragesprache. Und Sie können mit Hilfe unserer Objektabfragesprache sehr flexible Abfragen ausführen. Zum Beispiel gibt es eine Frage von Ihnen. Wenn wir beispielsweise alle Veranstaltungsorte in die Nähe des aktuellen Standorts bringen möchten, ja. Sie können. Beispielsweise haben Sie alle Daten im Cache weitergegeben. Sie haben alle Menüs, die separat als separate Objekte im Cache gespeichert sind. Recht? Und dann könnten Sie ihre Objektattribute haben, die Ihnen auch Standortinformationen geben können. Sie können also eine Abfrage ausführen, die besagt, dass alle Veranstaltungsorte ausgewählt werden, wobei der Veranstaltungsort diesem Ort entspricht. Wenn also die Objektattribute diese Informationen enthalten, könnten Sie alle übereinstimmenden Datensätze aus dem Verteilungscache abrufen. Deshalb eine Möglichkeit, es zu tun.

Die zweite Möglichkeit besteht darin, dass Sie die räumlichen Informationen oder alle Informationen, die Sie als Teil dieser Objekte abfragen müssen, in Form von Tags weitergeben. Du speicherst deine Objekte und dann speicherst du zusätzliche Schlüsselwörter, die hier als Tags stehen. Dies sind Identifikatoren, die identifizieren, die logische Sammlungen im Cache erstellen. Sie könnten also einfach die Tag-basierte API verwenden, bei der Sie „Nach Tag abrufen“ sagen und dann die gesamte Sammlung erhalten, die mit den Ergebnissen übereinstimmt, oder Sie können sogar eine Abfrage ausführen, bei der Sie sagen, dass Sie Veranstaltungsorte auswählen, bei denen „Tag“ gleich und „Tag“ im Wesentlichen ist ein Standort, den Sie bereits hinzugefügt haben, wobei das Tag einem XYZ-Standort entspricht, und Sie würden alle Datensätze erhalten, die basierend auf diesen Kriterien übereinstimmen. Dies sind also die zwei Möglichkeiten, wie Sie Abfragen verarbeiten können, bei denen Sie Tags über Ihren Objekten hinzufügen oder sich einfach auf tatsächliche Objektattribute verlassen können. Und führen Sie dann SQL-ähnliche Suchanfragen für sie durch. Ich hoffe, das beantwortet Ihre Fragen. Bitte lassen Sie mich wissen, wenn es weitere Fragen dazu gibt.

Es gibt noch eine Frage. Kann ich den Ablauf bestimmter zwischengespeicherter Elemente basierend auf Ereignissen festlegen? Beispielsweise wird ein Datensatz zwischengespeichert und läuft ab, wenn er in der Datenbank aktualisiert wird. Absolut! Wir haben zwei Arten von Ablaufzeiten. Wir haben, Zeit ist Ablauf und es gibt zwei Arten von Ablaufzeiten. Wenn also Zeit abläuft, können Sie Elemente ablaufen lassen, und dieser Ablauf kann auch auf Datenbankabhängigkeit basieren. Zum Beispiel ändert sich etwas in der Datenbank und das würde Ihre Frage beantworten. Wenn sich beispielsweise ein Datensatz in der Datenbank ändert, hatten Sie einen Datensatz im Cache, der davon abhängig war, sobald sich dieser Datenbankeintrag ändert, kann die Datenbank eine Ereignisbenachrichtigung senden und das Element im Cache kann automatisch von vorne entfernt werden der Cache. Es kann also ablaufen, sobald es in der Datenbank abläuft. Genau das bieten wir in Bezug auf relationale Datenbankabhängigkeiten an, und die SQL-Abhängigkeit würde dies abdecken. Ich würde es begrüßen, wenn wir schnell durch andere Folien gehen und dann zu unserem Objekt-Caching-Teil kommen könnten, und dies sollte viele Fragen beantworten. Bitte lassen Sie es mich wissen, wenn es weitere Fragen gibt, ansonsten werde ich die Präsentation an derselben Stelle fortsetzen.

Es gibt eine Frage. Können Sie eine Beispiel-Persistenz zeigen und Daten aus dem Beispiel-Cache abrufen? Ich würde Ihnen schnell empfehlen, sich unsere Muster anzuschauen, die mitgeliefert werden NCache und diese sind auch auf unserer Website verfügbar. Also, wenn ich Sie schnell zu unseren Proben bringe, los geht's und NCache. Ich kann Sie zu dem Beispiel führen, das dies genau handhabt. Wir haben also eine Datenbanksynchronisierung und dann Abhängigkeiten. Diese sollten also. Abhängigkeitshandles, SQL-Abhängigkeit und Datenbanksynchronisierung sind eine weitere Art von Beispielen, die Ihnen helfen, das Szenario mit Hilfe von Lese- und Schreibanforderungen zu handhaben. Ich hoffe, das würde Ihre Frage beantworten. Vielen Dank.

Es gibt noch eine andere Frage. Können wir dies abfragen, um die Daten zu sortieren? Ja. Wir haben nach Support sortiert. Sie könnten diese Attribute also neben der Abfrage verwenden. Sehr gute Jungs! Vielen Dank für die Zusendung dieser Fragen. Ich schätze diese sehr. Bitte lass sie kommen. Da dies gegen Ende unserer Präsentation geplant war und ich diese bereits behandeln wollte, ist es gut, dass alle Fragen eingehen, also kommen Sie bitte weiter. Vielen Dank.

NCache Architektur

Als nächstes gehe ich schnell zur Architektur. Der verteilte Cache ist sehr flexibel in Bezug auf das Hinzufügen oder Entfernen von Servern. Sie können beliebig viele Server hinzufügen. Sie können alle Server offline schalten. Es basiert auf TCP-basiertem Cache-Clustering. Es ist unser eigenes implementiertes Frageprotokoll. Wir verwenden kein Drittanbieter- oder Windows-Clustering. Selbst in Microsoft Azure würden Sie sich nur auf eine IP-Adresse und einen Port verlassen und NCache würde sich um den Rest kümmern. Es ist 100 % Peer-to-Peer-Architektur. Es gibt keinen Single Point of Failure, Sie können jeden Server offline nehmen und neue Server hinzufügen, und Clients hätten keine Auswirkungen. Sie können Änderungen dynamisch auf einen laufenden Cache-Cluster anwenden. Dann sind diese Konfigurationen so dynamisch, dass diese Server in ständiger Kommunikation mit den Clients stehen. Jeder Server, der ausfällt oder ein neuer Server hinzugefügt wird, wird sofort benachrichtigt. Es gibt eine In-Memory-Map, die an den Client weitergegeben und bei jeder Änderung im Cache aktualisiert wird. Diese Maps, Cluster-Mitgliedschaftsinformationen und Cache-Topologie-Informationen, werden aktualisiert, sobald es eine Änderung im Cache-Cluster gibt. Es gibt also eine Verbindungs-Failover-Unterstützung, daneben würden Clients dies automatisch tun, wenn ein Server ausfällt, und Server würden diesen Server veranlassen, den Server zu verlassen, und die überlebenden Knoten werden automatisch verfügbar und Clients würden automatisch eine Verbindung herstellen. Kurz gesagt, es würde keinen Datenverlust oder keine Anwendungsausfallzeit geben, was Client-Anwendungen betrifft, und dann gibt es vier verschiedene Topologien, aus denen Sie wählen können.

Caching-Topologien

Der aktive und passive Modus oder der Master- oder Slave-Modus würde basierend auf den Caching-Topologien bestimmt werden. Wie gesagt, es ist eine Peer-to-Peer-Architektur. Jeder Server nimmt also unabhängig am Cache-Cluster teil. Es gibt also keine Abhängigkeit oder kein Konzept des Lead-Hosts, wie Sie es hatten AppFabric oder es gibt kein aktives oder passives oder in Bezug auf die Konfiguration oder in Bezug auf das Cluster-Management. Jeder Server ist hinsichtlich der Konfiguration, hinsichtlich seiner Position im Cache-Cluster, zu 100% unabhängig. Aber es gibt verschiedene Caching-Topologien und wir haben aktive und passive, aber diese basieren auf den Daten im Cache. Wenn Daten aktiv verfügbar sind, nennen wir es aktiv und wenn Daten nur ein Backup sind, Clients nicht damit verbunden sind, nennen wir es passiv. Aber dieser passive Server wird in 100% Peer-to-Peer-Architektur wieder in den Cache eingefügt.

Es gibt eine Frage. Gibt es ein SDK für mobile Plattformen, Android oder iOS, das verwendet werden kann? NCache in nativen mobilen Apps? Im Moment haben wir sowohl .NET als auch Java-API, wir arbeiten an einer Restful-API, also bin ich mir ziemlich sicher, dass Sie sie sowohl von Android- als auch von iOS-Apps verwenden können, wenn diese veröffentlicht wird. Bitte senden Sie mir dazu eine E-Mail, senden Sie mir eine Anfrage dazu und ich werde das an die Technik weiterleiten und ich werde mich auch schnell mit den Zeitplänen dafür bei Ihnen melden.

Jetzt haben wir vier verschiedene Caching-Topologien.

Gespiegelter Cache

Wir haben gespiegelt, was aktiv/passiv ist. Ich werde diese schnell überfliegen, da dies heute nicht unsere Tagesordnung ist. Ich möchte mich mehr auf unseren praktischen Teil konzentrieren. Ich gebe Ihnen also einen Einblick in die unterschiedlichen Topologien NCache Bietet an. Wir haben vier verschiedene Topologien. Gespiegelter Cache, es ist ein Aktiv-Passiv-Cache mit zwei Knoten. Sie haben alle Clients aktiv verbunden und dann haben wir hier einen Backup-Server. Wenn Active ausfällt, werden Backups automatisch aktiv. Und für diese Clients wird automatisch ein Failover durchgeführt. Dies ist für kleinere Konfigurationen zu empfehlen, sehr gut für Lesevorgänge, sehr gut für Rechts und es ist auch sehr zuverlässig.

Replizierter Cache

Dann haben wir Replicated, es ist ein Aktiv-Aktiv-Modell. Beide Server sind also aktiv, aber die Clients sind verteilt. Wenn Sie also sechs Webrollen oder Workerrollen in Microsoft Azure mit gleichmäßigem Lastenausgleich haben, würden sich einige mit Server eins und einige mit Server zwei verbinden. Und wir haben hier ein Synchronisationsmodell.

In Mirrored hatten wir Async, also war die Leseleistung auch sehr schnell. Bei der Replikation haben wir immer ein Synchronisationsmodell. Wir haben also eine vollständige Cache-Kopie auf jedem Server, und diese Server haben die gleichen Daten, und alle Updates werden synchronisiert auf alle Server angewendet. Wenn Sie beispielsweise Serverelement Nummer zwei auf Server eins aktualisieren, wird es erst dann auf Server zwei synchronisiert angewendet, wenn dieser Vorgang abgeschlossen ist. Aber liest, die lokal auf dem Server angewendet werden, wo der Client verbunden ist. Lesevorgänge sind also sehr schnell, sehr skalierbar, Schreibvorgänge sind sehr konsistent, würde ich sagen, denn wenn Sie hier etwas ändern, haben Sie diese Änderung immer auch hier, nur dass der Vorgang abgeschlossen ist. Für zuverlässige Datentransaktionen für Updates und superschnelle Leistung ist dies also eine sehr gute Topologie. Wenn Sie Server eins verlieren, würden diese Clients auf Server zwei umschalten, und wenn Sie Server zwei verlieren, würden diese Clients umschalten. Es gibt also keinen Datenverlust, kein Abprallen von Anwendungen.

Partitionierter Cache

Dann haben wir einen partitionierten Cache, wo wir Daten partitioniert haben, und dann haben wir mit Replikation partitioniert. Wir haben also Daten partitioniert, wobei Sie je nach Bedarf zwei oder mehr Server haben könnten und die Daten automatisch auf allen Servern aufgeteilt werden. Einige Daten würden zu Server eins gehen und einige Daten würden zu Server zwei gehen. Die Verteilungskarten von Münzen wissen bereits, wo Daten im Cache vorhanden sind, sie würden den Server lokalisieren und diesen Server sowohl zum Lesen als auch zum Schreiben von Daten verwenden. Mehr Server bedeuten mehr Lesekopien aus dem Cache, mehr Schreibvorgänge, mehr Server zum Lesen von Daten, mehr Server zum Schreiben von Daten. Diese Server tragen also zur Gesamtleistung und Gesamtskalierbarkeit bei. Mehr Server bedeuten also mehr Skalierbarkeit aus dem Cache heraus. Partitioniert hat keine Backups.

Partitionsreplikat-Cache

Wir haben Partitionen mit Replikaten, wobei Sie jede Partition auf einem anderen Server in einer passiven Replikatpartition sichern könnten. Zum Beispiel befindet sich das Backup von jemandem auf Server zwei und das Backup von Server zwei auf Server eins. Es gibt also keinen Datenverlust, wenn ein Server ausfällt oder Sie den Server offline schalten müssen. Die Backups werden auf einmal zur Verfügung gestellt. Und das ist auch sehr linear skalierbar, tatsächlich ist es unsere am besten skalierbare Topologie in Bezug auf die Leistungszahlen.

Lassen Sie mich Ihnen schnell einige Benchmark-Zahlen zeigen, um dies zu unterstützen. Bitte lassen Sie mich wissen, wenn es irgendwelche Fragen gibt? Wie gesagt, ich werde diese Topologien schnell überfliegen, um hier etwas Zeit zu sparen.

Hier ist ein gespiegelter Cache mit zwei Knoten. Repliziert sehr gut für Lesevorgänge, Schreibvorgänge sind nicht so skalierbar, aber Sie könnten den Punkt hier sehen, da es eine Synchronisierungsnatur von Updates und Partitionen mit Lese- und Schreibskalierbarkeit hat. Partitionierte Replikate mit Lese- und Schreibvorgängen, dies hat auch Sicherungen, sodass Sie neben Leistung und Skalierbarkeit auch Sicherungen erhalten. Und dann haben wir auch partitionierte Replikate mit dem Sync-Replikat.

Client-Cache

Es gibt auch ein paar weitere Funktionen, zum Beispiel unterstützen wir auch lokales Caching in der Nähe des Clients ohne Codeänderungen, Sie können das Caching auch auf Ihrer Anwendungsseite aktivieren. Und dieser Cache wäre mit dem Server-Cache synchronisiert, der hauptsächlich für Referenzdatentypen empfohlen wird. Wenn Sie also mehr Lese- als Schreibvorgänge haben, möchten Sie es vielleicht einschalten, und dies würde Ihnen superschnelle Leistungsverbesserungen zusätzlich zu Ihrer vorhandenen Anwendung bringen. Es speichert Ihre Fahrten über das Netzwerk in einem verteilten Cache. Dies speichert Ihre Reisen nach hinten bereits in Datenbanken, aber Sie können diese Reise sogar dort speichern, wo Sie über das Netzwerk gehen müssen, indem Sie einen Client-Cache verwenden. Sie müssen es nur ausschalten. Und Sie können es sogar im Prozess schaffen, Ihrer Anwendung weiter Serialisierung und Kommunikation zwischen Prozessen zu sparen. Und NCache verwaltet die gesamte Synchronisation. Wenn sich hier etwas ändert, wird es sowohl hier als auch in andere Client-Caches propagiert und umgekehrt. Es ist ein sehr gutes Feature, um anzufangen. Leistungsbenchmarks habe ich bereits behandelt.

WAN-Replikation des verteilten Caches

Dann haben wir auch WAN-Replikationsunterstützung in Microsoft Azure. Wenn Sie beispielsweise zwei Rechenzentren haben, eines in New York und das andere vielleicht in Europa, könnten Sie sogar Daten von einem Rechenzentrum zum anderen übertragen. Sie könnten hier einen Cache-Cluster haben und mit Hilfe unserer Bridge, die auch mit den Aktiv-Passiv-Knoten gesichert ist, können Sie Daten an die Bridge übertragen und die Bridge kann sie dann wiederum an die Zielseite übertragen. Dies könnte für das DR-Szenario aktiv-passiv oder auch aktiv-aktiv sein.

IN ORDNUNG. Es gibt eine Frage. Kann ich den Client-Cache in einem getrennten System verwenden, bei dem es sich um mobile Apps mit vorübergehend keiner Netzwerkverbindung handelt? Das ist eine sehr gute Frage. Die Frage ist, ob ich den Client-Cache in einem getrennten Modus verwenden kann. Wir haben darüber gesprochen; Dies war eine Feature-Anfrage von einem der Kunden, und dann haben wir tatsächlich ausführlich darüber gesprochen. Es gibt also eine bestimmte Anforderung, an der Sie interessiert sind. Wir haben bereits einige Pläne, wir haben dies bereits besprochen, und seitdem hatten wir bereits eine ähnliche Anfrage. Wenn Sie mir dazu einfach eine E-Mail senden könnten, möchte ich, dass der Client-Cache für meinen Anwendungsfall verwendet wird, und ich möchte, dass er auch im getrennten Modus verwendet wird. Ich werde dies sehr gerne an die Technik weitergeben, da sie bereits darüber diskutieren und dies zufällig bereitstellen. Vielen Dank.

Okay. In diesem Fall warte ich auf Ihre E-Mail. An diesem Punkt wandert der Client-Cache in Kombination mit dem Server-Cache. Wenn dies den Client-Cache herunterfährt, da er mit einem Server-Cache synchronisiert wird, würde dies auch alle Daten verlieren. Wir planen jedoch, einen getrennten Modus zu verwenden, in dem der Client-Cache auch dann aktiv bleibt, wenn die Serververbindung unterbrochen wird, und außerdem einige Operationen in die Warteschlange stellt, die zu einem späteren Zeitpunkt ausgeführt werden sollen.

Hands-on-Demo

Als Nächstes zeige ich Ihnen schnell eine praktische Demo. Wie funktioniert das eigentliche Produkt? Uns bleibt nur noch wenig Zeit, ich glaube, wir haben zehn Minuten. Ich gebe Ihnen also schnell einen Azure-Überblick. Was Sie für den Einstieg unbedingt benötigen NCache ist, dass Sie die Bereitstellung planen NCache.

Als Erstes müssen Sie ein virtuelles Azure-Netzwerk erstellen. Sie kommen zu Microsoft Azure, erstellen ein virtuelles Netzwerk. Sie könnten einfach „Schnell erstellen“ oder „Benutzerdefiniertes Erstellen“ verwenden, und dann beispielsweise, wenn ich „Schnell erstellen“ wähle, kann ich einfach sagen NCache VM. Dies wäre ein virtuelles Netzwerk, das ich verwenden werde NCache und dann könnte ich einfach dieses virtuelle Netzwerk erstellen. Sie könnten sich bei Bedarf einfach spezifische Details zum virtuellen Netzwerk einfallen lassen. Oder Sie haben möglicherweise bereits ein virtuelles Netzwerk in Ihrer Umgebung, das Sie verwenden möchten NCache Einsätze. Das ist also unser erster Schritt. Ich habe einige virtuelle Netzwerke, die bereits erstellt wurden. Also kann ich einfach weitermachen und zum nächsten Schritt gehen.

Der nächste Schritt wäre die Erstellung NCache virtuelle Maschinen. Sie müssen nur eine virtuelle Maschine erstellen, die haben kann NCache vorinstalliert, Sie könnten einfach installieren NCache Nehmen Sie unser Microsoft Azure-VM-Image aus der Azure marketplace das ist für NCache professional aber falls es dich interessiert NCache enterprise, könnten Sie einfach den Plain Image 2012-Server verwenden. Installieren NCache darauf und speichern Sie dieses Image dann für eine spätere Phase und laden Sie es dann jedes Mal, wenn Sie eine neue VM für spawnen müssen NCache Serverbereitstellung. Aus der Galerie könnte ich also einfach ein Image auswählen, zum Beispiel den 2012-Server. Ich könnte als nächstes wählen, ihm nur einen Namen geben. Zum Beispiel Demo 3. Ich wähle eine Serverstufe aus und könnte dann bei Bedarf einfach einige Informationen eingeben.

azurblau

Dies sind Azure-spezifische Schritte. Ich bin mir also ziemlich sicher, dass Sie damit vertraut sind. Das nächste, was am wichtigsten ist, ist, ob Sie eine neue erstellen möchten cloud service oder verwenden Sie die bereits vorhandene. Wenn ich beispielsweise den Benchmark verwende, wird automatisch auch das virtuelle Netzwerk erfasst. Sie könnten Ihre VMs jedoch so erstellen, dass sie eigenständig vorhanden sind cloud serviceAuch dafür könnten Sie sich dafür entscheiden, eine neue zu erstellen cloud service. Aber Sie würden trotzdem empfehlen, dass Sie ein virtuelles Netzwerk für alle Ihre Server-VMs auswählen und das sollte dann für alle Server-VMs gleich sein NCache. Damit Sie mehr Leistung aus dem System herausholen, was die Server-zu-Server-Kommunikation betrifft. Also wähle ich einfach diesen Benchmark und basierend darauf könnte ich einfach als nächstes wählen.

azurblau2

Sie können bei Bedarf einige spezifische Details zum Netzwerk eingeben. Aber insgesamt ist das alles, was ich brauche. Also, ich könnte einfach... Okay. Der von mir ausgewählte Cloud-Server unterstützt diese Art von virtueller Maschine nicht. Also muss ich nur eine neue erstellen wählen cloud service damit. Okay. Also, ich werde nur sagen, damit es genehmigt wird, und los geht's. So würde es also gehen. Ich werde das einfach kündigen. Ich habe diese Server bereits hier und tatsächlich kann ich mich schnell bei einigen Servern anmelden, die ich bereits konfiguriert habe. Bitte haben Sie Geduld mit mir. Lassen Sie mich Ihnen zeigen, wie Sie damit beginnen können, einen Cache zu erstellen und ihn in Ihrer Umgebung zu konfigurieren und schnell zu testen. Wir haben etwa zehn Minuten. Daher möchte ich es voll ausschöpfen. Und Leute, bitte zögert nicht, so viele Fragen zu posten, wie ihr braucht. Ich beantworte immer Fragen, während ich die Umgebung vorbereite.

Okay. Ich habe bereits diese Server. Dort kann ich mich schnell einloggen. Wir haben diese bereits für einige Tests verwendet, ich glaube, ich habe das Passwort genau hier vermasselt, bitte haben Sie Geduld mit mir. Los geht's! IN ORDNUNG! Los geht's! dann habe ich diese Demo 2 genau hier. Das sind also meine beiden Kisten. IN ORDNUNG! Ich habe also diese beiden Boxen bereits konfiguriert, die Teil desselben virtuellen Netzwerks in Microsoft Azure sind.

Es gibt eine Frage. Brauche ich zwingend eine VM oder kann ich einen Azure App Server nutzen? Was ist mit Docker? Wir haben noch keine Docker-Unterstützung. Ich kann bei der Technik nachfragen, ob sie an einem arbeiten. Was das Servermodell betrifft, z NCache Sie benötigen eine VM auf Microsoft Azure. Virtuelle Anwendung könnte ein Servicemodell sein, es könnte ein sein cloud service, es könnte eine Webrolle sein, es könnte eine Workerrolle sein, es könnte sich um eine tatsächliche VM handeln, auf der Ihre Anwendung bereitgestellt wird. Aber die NCache Der Serverteil muss eine VM sein, und wie gesagt, der einfachste Weg wäre, dass Sie ein vorkonfiguriertes VM-Image erstellen NCache. Behalten Sie es in der Galerie und laden Sie es dann, wenn Sie eine neue Instanz davon erstellen müssen. Sie könnten sogar dasselbe für die automatische Skalierung wählen, wenn Sie die VM-Vorlagen zur Verfügung haben, NCache installiert, aktiviert und konfiguriert, spawnen Sie einfach diese neuen VMs, wenn Ihr Knoten eine bestimmte Grenze erreicht.

Es gibt noch eine Frage. Sie haben vielleicht bereits erwähnt, gibt es Verschlüsselung und Komprimierung zur Datenreduzierung in Bezug auf die Bandbreitennutzung, und ich glaube, Sie fragen nach Verschlüsselung und Komprimierung. Ja! Diese beiden Funktionen sind ohne Codeänderungen verfügbar. Sie können Ihre Daten für die Übertragung sensibler Daten verschlüsseln, Daten können verschlüsselt werden und dann können die Daten auch komprimiert werden. Diese gehören also dazu NCache Unterstützung. Vielen Dank, dass Sie diese Fragen gestellt haben. Bitte lassen Sie mich wissen, wenn es noch Fragen gibt.

Einrichten einer Umgebung

Ich möchte Ihnen schnell das aktuelle Produkt in Aktion zeigen. Als nächstes müssen Sie also auf unsere Website gehen und installieren NCache entweder die Cloud-Version, die hier ist, die professionelle Cloud ist, ist bei Microsoft verfügbar Azure marketplace oder laden Sie einfach die reguläre Enterprise Edition herunter und installieren Sie sie auf Ihren Microsoft Azure-VMs. Ich habe die Enterprise-Installation bereits durchgeführt. Schritt eins ist also abgeschlossen. Jetzt ist Schritt zwei, einen unbenannten Cache zu erstellen, und dafür könnten Sie einen starten NCache Manager-Tool, das mit installiert wird NCache. Sie können also alles nach Bedarf einfach von einem der VMS aus verwalten, oder Sie können es auch von einem separaten Server insgesamt verwalten, der über das Netzwerk Zugriff auf diese Server hat.

Erstellen Sie einen geclusterten Cache

Der nächste Schritt besteht darin, einen benannten Cache zu erstellen. Ich werde es schnell tun. Es heißt Demo-Cache.

Cache erstellen

Dies ist der Name, den Sie für alle Ihre Client-Anwendungen verwenden, um diesen Cache zu verwenden. Sie können auf diesen Namen verweisen, um fortzufahren und Daten aus dem Cache abzurufen. Ich wähle die partitionierte Replikat-Cache-Topologie, da dies die am meisten empfohlene ist.

partitionierte Replik

Ich werde als nächstes Async als Replikationsoption auswählen, da dies schneller ist. Server 1 und sehen Sie, dass er die private IP der Server verwendet, und deshalb habe ich empfohlen, dass Sie das virtuelle Netzwerk in Bezug auf die Server-zu-Server-Bereitstellung messen. Damit sie über die internen IPs zugänglich sind und Sie eine sehr schnelle Kommunikation zwischen den Servern haben.

ips

TCP-Port für die Kommunikation standardmäßig Azure VMS hat Firewall geöffnet. Also würde ich empfehlen, dass Sie das ausschalten oder zumindest schlagen NCache Ports für die Kommunikation auf der Firewall. Und dann basiert die Größe des Caches pro Server auf dem Speicher, der auf Daten basiert, die Sie im Cache haben möchten. Wenn Sie also zwei GB Cache-Größe benötigen, geben Sie einfach die richtige Menge an Speicher ein, die hier angegeben ist. Dies ist nur eine Obergrenze, wenn der Cache voll wird, haben Sie zwei Möglichkeiten, Sie können entweder neue Updates ablehnen, was bedeutet, dass keine Daten hinzugefügt werden können, Sie würden eine Ausnahme erhalten, oder Sie können Räumungen aktivieren, wo Sie einfach einen Räumungsprozentsatz angeben können und diese Algorithmen können steuern, wie viele Elemente mit diesen Algorithmen entfernt werden können, um Platz für die neuen Elemente zu schaffen. Wenn also Ihr Cache voll ist, werden Räumungen aktiviert, einige Elemente werden automatisch entfernt und Sie können weitere Elemente hinzufügen. Ich schließe einfach mit der Standardeinstellung ab.

Fertig

Dann ist unser Schritt 2 abgeschlossen, wo wir den Cache konfiguriert haben. Im rechten Bereich befinden sich alle Einstellungen, die sich auf diesen Cache beziehen. Schritt 3 besteht darin, den Client-Knoten hinzuzufügen. Ich könnte einfach Demo 3 hinzufügen, aber da wir nur zwei Server haben und ich diese beiden Boxen auch als Clients hinzufügen werde. Schritt 4 besteht darin, diesen Cache-Cluster zu starten und zu testen. Dazu klicke ich einfach mit der rechten Maustaste und wähle das aus, und dies würde diesen Cache auf allen meinen Caching-Servern starten, und übrigens sind diese Client-Knoten eigentlich meine Webrollen oder VMs, wo Meine Anwendung wird bereitgestellt.

Anfang

Also, genau deshalb habe ich empfohlen, dass Sie auch alles im selben Netzwerk halten. Damit Sie sie einfach verwalten können NCache Manager. Und ein Rechtsklick in die Statistik würde die Perf-Mon-Zähler öffnen. Cache wurde gestartet Einige der Einstellungen sind ausgegraut und können nicht geändert werden, während der Cache ausgeführt wird, aber Sie können einige der Einstellungen dennoch ändern, z. Fordert Sie auf, das Projekt zuerst zu speichern. Also werde ich das einfach tun und dann Konfigurationen hart anwenden. Los geht's.

Statistiken

Jetzt wurde der Cache konfiguriert, die Clients wurden konfiguriert. Wir sind mit drei Schritten fertig, wir haben installiert NCache.

Stress simulieren und Cache-Statistiken überwachen

Wir haben den Cache erstellt, wir haben die Clients konfiguriert, wir sind vom Standpunkt der Konfiguration aus fertig, aber wir müssen nur noch diesen Cache-Cluster starten und ausführen, und dafür verwende ich einfach ein Stresstest-Tool, das mit installiert wird NCache. Und es gegen meinen Cache laufen lassen. Damit ich auch etwas Aktivität sehen konnte. Ich werde mich auch bei meiner zweiten Box anmelden und diese konsolenbasierte Anwendung ebenfalls ausführen. Also, das und davor führe ich die zweite Instanz aus und schaue mir den Zähler für Anforderungen pro Sekunde an. Wir haben ungefähr tausend Anfragen pro Sekunde, die von einer Instanz des Stresstest-Tools generiert werden.

Statistik2

Auf dem zweiten Server werde ich das einfach ausführen. Damit wir etwas mehr Last haben und feststellen, dass der Requests-per-Second-Zähler fast auf das Doppelte gestiegen ist. Zweitausend Anfragen pro Sekunde.

Statistik3

Obwohl ich eine Instanz von dieser Box ausgeführt habe, wurden immer noch beide Server verwendet. Ich habe eine andere Instanz ausgeführt, in der die Anwendung auch beide Server in Kombination miteinander verwendet hat, und dann haben wir dieses Überwachungstool, das uns Gesundheit, CPU, Anforderung, Größe, Netzwerk und verschiedene Matrizen von der Serverseite wie bei uns von der clientseitig.

Armaturenbrett

Und Sie könnten auch Ihre eigenen Dashboards erstellen, wie ich es hier getan habe. Es tut mir leid, Leute, aus Zeitgründen musste ich ein bisschen schnell sein, aber dies waren fünf einfache Schritte, um loszulegen NCache. Unser Cache ist in Betrieb.

Verwenden Sie die NCache Muster

Als Nächstes verwenden Sie den Cache in Ihren eigentlichen Anwendungen, und dafür können Sie einfach schnell auf unsere verweisen NCache Proben. Wenn Sie beispielsweise grundlegende Operationen verwenden möchten, ist dies das Beispiel. Wenn Sie den Sitzungsstatus verwenden möchten, können Sie diese ASP.NET-Sitzungsstatusanwendung verwenden. In dieser Liste sind auch Beispiele für Ansichtsstatus und Ausgabe-Caching verfügbar. Nutzen Sie diese also und beziehen Sie sich zur Verwendung darauf NCache in tatsächlichen Anwendungen.

Es gibt eine Frage. Kann ich zwei Cache-Ebenen konfigurieren, eine größere gleich 200 GB in einem dauerhaften Zustand und eine kleinere gleich 1 GB flüchtiger im Arbeitsspeicher, und einen Arbeitsspeicher der Ebene 1 mit einer Teilmenge des Arbeitsspeichers synchronisieren, auf die häufig Objekte aus dem Cache der Ebene 2 verweisen? Das ist möglich. Sie haben zwei Fragen. Die erste Frage ist, ob Sie zwei verschiedene Caches mit zwei verschiedenen Speichern erstellen können. Ja. Sie können, die meisten unserer Kunden erstellen einen Cache für statische Daten und einen anderen Cache für dynamische Daten. Das ist also etwas, was Sie tun können, und Sie können völlig unterschiedliche Konfigurationen für diese beiden Caches erstellen.

Die nächste Frage ist, ob es eine Möglichkeit gibt, Daten zwischen diesen beiden Caches zu synchronisieren? Ja. Sie können. Es gibt diese Cache-Sync-Abhängigkeit. Diese Funktion ist privat verfügbar, aber ich kann einige Details darüber teilen, wie diese implementiert werden, und Sie könnten auch eine Synchronisierungsabhängigkeit zwischen zwei verschiedenen Caches haben. Dieselbe Funktion verwenden wir in Sach-Caches überall dort, wo wir einen Client-Cache haben, der ein Cache ist und mit dem Cluster-Cache synchronisiert wird, der auf anderen Servern konfiguriert ist. Also ja. Um Ihre Frage mit Ja zu beantworten, können Sie zwei verschiedene Caches haben und Sie könnten auch eine Synchronisierung zwischen Daten in diesen beiden Caches haben.

Ich fasse es schnell für Sie zusammen, es gibt viele Objekt-Cache-Erhöhungen, die Sie nutzen können, diese sind Teil davon NCache Objekt-Caching-Unterstützung und dann haben wir bereits den Anzeigestatus der ASP.NET-Sitzung behandelt. Es gibt auch einige Integrationen von Drittanbietern. Dies ist also im Wesentlichen das Ende unseres Webinars. Ich entschuldige mich dafür, dass ich aus Zeitgründen ein paar Bits durchgegangen bin, aber um es noch einmal zu wiederholen, wir haben einige grundlegende Details zu Unfähigkeitsproblemen behandelt, über In-Memory-Distribution-Caching in der Lösung gesprochen, über die Bereitstellung in Microsoft Azure und verschiedene Anwendungsfälle gesprochen , Clustering-Unterstützung, Topologie-Unterstützung innerhalb NCache. Wir hatten eine spezielle praktische Demo zum Einstieg in Microsoft Azure NCache geht.

Bitte lassen Sie mich wissen, wie hat Ihnen die Präsentation gefallen? Wie hat Ihnen das Produkt im Allgemeinen gefallen? Geben Sie mir dazu Ihr Feedback. Es gibt einige Dinge, die Sie gegen Ende tun können. Sie können auf unsere Website gehen und eine 30-Tage-Testversion von herunterladen NCache. Sie können auch unsere Cloud-Edition wählen, die ist NCache professional cloud, es ist auf Microsoft Azure verfügbar. Wir haben auch einen Kunden. Dann könnten Sie bei Bedarf sogar Ihre Azure-VMs für das Enterprise Edition-Produkt verwenden. Sie können sich mit unserem Support-Team in Verbindung setzen, indem Sie auf die Support-Seite gehen. Es gibt einige Kontaktdaten, unter denen Sie sich mit dem Support in Verbindung setzen können support@alachisoft.com.Sie können bei Bedarf eine Produktdemo anfordern und sich für Preisinformationen auch an unser Vertriebsteam wenden. Also, wir sind schon bei unserer Ein-Stunden-Marke, also denke ich, es ist Zeit, sich zu verabschieden. Bitte lassen Sie mich wissen, wenn es auch nach dieser Demo noch Fragen gibt. Sie können sich per E-Mail oder telefonisch mit mir in Verbindung setzen, und ich freue mich sehr über Ihre Fragen. Vielen Dank, Jungs. Es war eine Freude, sich zu präsentieren NCache Webinar heute. Bitte lassen Sie mich wissen, wie Ihnen das Produkt gefallen hat, wie Ihnen die Präsentation gefallen hat, und wir können immer davon ausgehen. Vielen Dank für Ihre Zeit, alle.

Was macht man als nächstes?

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