Programmiermodell (AppFabric 1.1-Cache)
Für Microsoft AppFabric 1.1 für Windows Server stehen nun zwei Programmiermodelle zur Verfügung:
Cachefremdes Programmierschema. Dies bedeutet, dass die Daten erneut aus der ursprünglichen Datenquelle in den Cache geladen werden müssen, wenn die Daten nicht im Cache, in der Anwendung oder im verteilten AppFabric-Cache vorhanden sind.
Schema für Read-Through und verzögerte Schreibvorgänge. In diesem Modell erstellen Sie einen benutzerdefinierten Anbieter für den Zugriff auf den Back-End-Datenspeicher. Wenn ein Element nicht im Cache enthalten ist, ruft der Anbieter dieses aus dem Back-End ab. Wenn Elemente in einen Cache geschrieben werden, werden die geschriebenen Elemente regelmäßig und asynchron in das Back-End geschrieben. Weitere Informationen zu diesem Modell finden Sie unter Read-Through und verzögerte Schreibvorgänge (AppFabric 1.1-Cache).
Cachestrategie
Anwendungscode sollte so entworfen werden, dass er unabhängig vom Cache funktioniert und nicht erfordert, dass zwischengespeicherte Daten immer verfügbar sind. Da die Persistenz der Daten im Cache nicht dauerhaft ist, besteht die Möglichkeit, dass die Daten im Cache nicht verfügbar sind.
Das Feature für hohe Verfügbarkeit schützt vor Computer- und Prozessfehlern einzelner Cachehosts, während der Cluster ausgeführt wird. Unter bestimmten Umständen geht jedoch der gesamte Cluster außer Betrieb. Wenn z. B. ein führender Host zu viel außer Betrieb geht, wird der gesamte Cluster heruntergefahren. Weitere Informationen finden Sie unter Führende Hosts und Clusterverwaltung (AppFabric 1.1-Cache).
Ihr Code kann auch aus zahlreichen anderen Gründen einen Cachefehler aufweisen: Das Cacheelement ist abgelaufen oder wurde entfernt, der Cacheserver wurde ggf. neu gestartet, der Cachedienst wurde ggf. neu gestartet oder der Cachecluster wurde ggf. versehentlich neu gestartet. Unabhängig von der Ursache sollte Ihr Anwendungscode in der Lage sein, auf die Datenbank (oder auf eine andere Datenquelle) zuzugreifen, wenn das zwischengespeicherte Objekt nicht verfügbar ist.
Cacheclients
Verwenden Sie die Methode GetCache, um Daten im Cache zu speichern, oder die Methode GetDefaultCache, um ein DataCache-Objekt zurückzugeben. Nach der Instanziierung wird dieses DataCache-Objekt als Cacheclient bezeichnet.
Hinweis
Aus Leistungsgründen wird empfohlen, die Anzahl der DataCacheFactory-Objekte, die in einer cacheaktivierten Anwendung erstellt werden, möglichst gering zu halten. Speichern Sie das DataCacheFactory-Objekt in einer Variablen, die für alle Teile der Anwendung, die einen Cacheclient verwenden, zugänglich ist.
Es sind zahlreiche Optionen zum Konfigurieren des Verhaltens des Cacheclients verfügbar. Sie können diese Konfigurationseinstellungen programmgesteuert, mithilfe einer Anwendungskonfigurationsdatei oder mit beiden Methoden angeben. Weitere Informationen zu Cacheclients und den verfügbaren Einstellungen für die Anwendungskonfiguration finden Sie unter Cacheclients und lokaler Cache (AppFabric 1.1-Cache) und Anwendungskonfigurationseinstellungen (AppFabric 1.1-Cache).
Es können mehrere Cacheclients gleichzeitig auf einen Cache zugreifen. Anwendungen, die auf verschiedenen Computern ausgeführt werden, können zu diesem Zweck einen Cacheclient instanziieren, der für die Verwendung des gleichen Caches konfiguriert ist. Das folgende Codebeispiel zeigt dieses Konzept. Beachten Sie, dass Kommentare verwendet werden, um den Code zu identifizieren, der für verschiedene Cacheclientinstanzen ausgeführt wird.
'Each application has a similar GetCache method call
Dim myCacheFactory As DataCacheFactory = New DataCacheFactory()
Dim catalog As DataCache = myCacheFactory.GetCache("catalog")
'One cache client saves an object to the catalog named "toy101"
Call catalog.Put("toy101", New ToyObject("toy101", "Playschool"))
'The same or different cache client retrieves the object
Dim toy As ToyObject = CType(catalog.Get("toy101"), ToyObject)
'The same or a different cache client removes the object
catalog.Remove("toy101")
//Each application has a similar GetCache method call
DataCacheFactory myCacheFactory = new DataCacheFactory();
DataCache catalog = myCacheFactory.GetCache("catalog");
//One cache client saves an object to the catalog named "toy101"
catalog.Put("toy101", new ToyObject("toy101", "Playschool"));
//The same or different cache client retrieves the object
ToyObject toy = (ToyObject)catalog.Get("toy101");
//The same or a different cache client removes the object
catalog.Remove("toy101");
Siehe auch
Konzepte
Diagramm der physischen Windows Server AppFabric-Cachearchitektur (AppFabric 1.1-Cache)
Diagramm der logischen Windows Server AppFabric-Cachearchitektur (AppFabric 1.1-Cache)
Entwickeln eines Cacheclients
2012-03-05