Otomatik Mühendis

AppFabric Üzerinde Cache Oluşturma ve Erişimi

günü tarafından yayınlandı.

Daha önceki yazıda AppFabric kurulumunu ve ayarlarını görmüştük. İşlemleri başarıyla gerçekleştirdiyseniz şu an çalışır vaziyette bir AppFabric sunucunuz olmalı. Sunucularımızı görebilmek için Caching Administration Windows PowerShell aracını Administator olarak çalıştırıyoruz ve aşağıdaki komutu giriyoruz.

Get-CacheHost

Eğer Powershell aracı açılırken hata aldıysanız. Daha önceki yazıda da bahsettiğimiz Remote Registry servisinin çalışmamasından dolayı hata vermiş olabilir. Bu servisi çalıştırmak için yine aşağıdaki komutu girebiliriz.

net start RemoteRegistry

Bu işlem sonrasında PowerShell aracını tekrar çalıştırmanız gerekir. Kısayol ayarlarından bakarsanız aslında modül ekleme komutu barından bir PowerShell kısayolu olduğunu görebilirsiniz. Sıklıkla PowerShell kullanan biriyseniz bu komutu buradan kopyalarak kullanabilirsiniz.

Cache sunucusu çalışmıyorsa (durumu “DOWN” ise) aşağıdaki komutla çalıştırabiliriz.

net start AppFabricCachingService

Çalışması biraz zaman alacaktır. Kısa bir süre bekledikten sonra tekrar get-cachehost komutuyla son durumunu görebiliriz.

Artık ayakta olan bu sunucu üzerinde yeni bir cache oluşturabiliriz. Aşağıdaki komut “appFabricCache” adında yeni bir cache oluşturacaktır. Bu ismi değiştirebilirsiniz.

New-Cache appFabricCache

Oluşturduğumuz cache bilgilerini aşağıdaki komut ile görüntüleyebiliriz.

get-cacheconfig appFabricCache

Komutlar

Şu ana kadar çalıştırdığımız komutların görüntüsü

Cache hakkında daha fazla bilgi alabilmek için kullanabileceğimiz komutlar;

get-cache

get-cachestatistics appFabricCache

Artık cache’imizi de oluşturduğumuza göre nasıl erişeceğimizi görelim.

Şu adreste Windows Server AppFabric Samples örnek uygulamaları indirebilirsiniz. “WindowsServerAppFabricSamples\WindowsServerAppFabricSamples\Samples\CS\Cache\CacheSampleWebApp” içerisindeki CacheSampleWebApp.sln‘yi açarsanız cache üzerinde ekleme, getirme ve güncelleme işlemlerini yapan hazır ASP.NET uygulamasını görebilirsiniz.

Derleme hatası alıyorsanız, Microsoft.ApplicationServer.Caching.Core ve .Client referanslarını kontrol ediniz. Bunlardan dolayı hata alıyorsanız, bunları sildikten sonra Program Files içerisinde ki AppFabric içerisinde dll’lerini bulup projeye ekleyebilirsiniz.

Başarılı bir şekilde derlenen projenin oluşturduğu sayfa görünümü şu şekilde olacaktır;

Sayfa görünümü

Proje içeriğindeki kodların açıklamaları;

CacheUtil sınıfı cache bağlantımızı gerçekleştiren GetCache() metodunu içermektedir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using Microsoft.ApplicationServer.Caching;
using System.Collections.Generic;

/// <summary>
/// Cache aygıtı
/// </summary>
public class CacheUtil
{
  private static DataCacheFactory _factory = null;
  private static DataCache _cache = null;

  public static DataCache GetCache()
  {
      if (_cache != null)
          return _cache;

      //-------------------------
      // Cache istemcisinin ayarlanması 
      //-------------------------

      //1 cache sunucusu için liste tanımlıyoruz
      List<DataCacheServerEndpoint> servers = new List<DataCacheServerEndpoint>(1);

      //Cache sunucusunun parametrelerini set ediyoruz 
      //  Parameter 1 = host adı
      //  Parameter 2 = cache port no
      servers.Add(new DataCacheServerEndpoint("localhost", 22233));

      //Cache ayarları
      DataCacheFactoryConfiguration configuration = new DataCacheFactoryConfiguration();
      
      //Cache'in hostu set edilir
      configuration.Servers = servers;
      
      //Varsayılan cache ayarları set edilir
      configuration.LocalCacheProperties = new DataCacheLocalCacheProperties();

      //Web sayfasında önemli mesajların gösterilmesi kapatılır
      DataCacheClientLogManager.ChangeLogLevel(System.Diagnostics.TraceLevel.Off);

      //Ayarlar cache factory'e aktarılır
      _factory = new DataCacheFactory(configuration);

      //"appFabricCache" factory'e kayıt edilir
      _cache = _factory.GetCache("appFabricCache");
      
    return _cache;
  }
}

Kendi oluşturduğum cache adını özellikle verdiğime dikkat ediniz. Burada kendi oluşturduğunuz cache adını yazabilirsiniz.

Cache’i yönetmek için aşağıdaki metodları kullanabilirsiniz;

1
2
3
4
5
6
7
8
//Ekleme
m_cache.Add(orderid, order);

//Getirme
Order order = (Order)m_cache.Get(orderid);

//Güncelleme
m_cache.Put(orderid, order);

Böylece kurmuş olduğumuz sunucuyu nasıl kullanabileceğimizi görmüş olduk. Bundan sonra yapılması gereken cache’e ekleme yapan bir servis yazmaktır. Her güncellemede de cache’i güncellemesi gerekecektir. Ondan sonra istediğimiz yerden bu sunucuya ulaşarak rahatlıkla ve hızla verileri çekebiliriz.

Yorumlarınızı okumaktan ve sorularınızı yanıtlamaktan mutluluk duyarım.

AppFabric, Cache, PowerShell, windows Sistem, Yazılım

Yazar: Olcay Bayram

Çeşitli teknoloji firmalarında çalışmış, yurtiçi ve yurtdışı farklı sektörlerden tecrübe edinmiş, derdini iki yabancı dilde anlatabilen bir yazılım uzmanı.