Düzey 2 önbelleğini uygulama

Veri API oluşturucusu, önbellek davranışını etkilemek için uzun süredir bellek içi önbellek ve önbellekle ilgili HTTP isteği üst bilgilerini no-storeno-cacheonly-if-cached desteklemektedir.L1

Düzey 2 (L2) önbelleği, dağıtılmış bir önbellek katmanı ekleyerek önbelleğe almayı yerel işlemin ötesine genişletir. ile L2, önbelleğe alınan sonuçlar birden çok DAB örneğinde yeniden kullanılabilir ve tek tek kapsayıcı yeniden başlatmalarından kurtulabilir ve bu da durum bilgisi olmayan dağıtımların doğru yollarla daha az durum bilgisi olmasını sağlar.

Düzey 2 önbelleğinin avantajları

Şunu yapmak istediğinizde düzey 2 önbelleğini kullanın:

  • Önbelleğe alınan sonuçları ölçeği genişletilmiş DAB örnekleri arasında paylaşma
  • Yinelenen okumalar için veritabanı gidiş dönüşlerini azaltma
  • Durum bilgisi olmayan kapsayıcıları geri dönüşüm veya yeniden dağıtıldıktan sonra sıcak tutun
  • Yoğun okunan iş yükleri için performansı geliştirme
  • Bölümlere ad alanı önbelleği katılımı

Çalışma zamanı önbellek ayarlarını yapılandırma

Düzey 2 önbelleği altında runtime.cachegenel olarak yapılandırılır. Çalışma zamanı önbellek bloğu önbelleğe almayı etkinleştirir, varsayılan yaşam süresini (TTL) ayarlar ve dağıtılmış önbellek sağlayıcısını yapılandırır.

{
  "runtime": {
    "cache": {
      "enabled": true,
      "ttl-seconds": 30,
      "level-2": {
        "enabled": true,
        "provider": "redis",
        "connection-string": "localhost:6379",
        "partition": "prod-api"
      }
    }
  }
}

Çalışma zamanı özellikleri

Mülkiyet Açıklama
enabled Önbellek desteğini genel olarak etkinleştirir.
ttl-seconds Varsayılan önbellek yaşam süresini saniyeler içinde ayarlar.
level-2.enabled Dağıtılmış önbellek katmanını açar.
level-2.provider Dağıtılmış önbellek sağlayıcısını seçer. Şu anda redis desteklenmektedir.
level-2.connection-string Redis örneği için bağlantı dizesi.
level-2.partition Redis anahtarları ve arka plan kanalı için isteğe bağlı ad alanı. Yalnızca aynı bölümü kullanan kapsayıcılar aynı dağıtılmış önbellek alanını paylaşır.

Varlığa özgü önbellek davranışını yapılandırma

Varlıklar genel önbellek davranışını geçersiz kılabilir. Önbelleğe almayı etkinleştirmek, özel bir TTL ayarlamak ve önbellek düzeyini seçmek için varlık cache bloğunu kullanın.

{
  "entities": {
    "Products": {
      "source": "dbo.Products",
      "cache": { "enabled": true, "ttl-seconds": 120, "level": "L1L2" }
    },
    "Orders": {
      "source": "dbo.Orders",
      "cache": { "enabled": true, "level": "L1" }
    }
  }
}

cache.level özelliği

Bir varlığın hangi önbellek katmanlarını kullandığını denetlemek için kullanın cache.level .

Değer Açıklama
L1 Yalnızca bellek içi önbellek. Geçerli DAB işlemi için hızlı ve yerel.
L1L2 Bellek içi ve dağıtılmış önbellek. Bu düzey, önbelleğe alınan varlıklar için varsayılan değerdir.

Genel olarak etkinleştirilmemişse L2 , ile L1L2 yapılandırılan bir varlık olarak L1davranır.

Nasıl L1L2 çalışır?

Tavsiye

TL; DRL1L2 = L1 → L2 → veritabanı → L2 → L1 → Yanıtı → isteği

Varsayılan olarak, önbelleğe alma özelliği etkinleştirilmiş bir varlık düzeyi L1L2kullanır.

  • L1 bellek içi işlem başına önbellektir.
  • L2 , şu anda Redis olan dağıtılmış önbellek katmanının yanı sıra örnekler arası tutarlılık için bir geri düzlemdir.

L1L2 ile, bir önbellek araması önce L1'yi denetler. Bir L1 yanıtsız olduğunda düzey 2 önbelleğinin genel olarak etkinleştirilip etkinleştirilmediğini ve yapılandırılıp yapılandırılmamış olduğunu denetler L2 . Girdi her iki katmanda da bulunamazsa DAB veritabanı sorgusunu yürütür. Sonuç daha sonra hem hem L2de L1 içinde depolanır.

Bu da şu anlama gelir:

  • Aynı örnekteki gelecekteki istekler yerelden sunulur L1
  • Diğer örneklerdeki istekler girdiyi L2 okuyabilir ve kendi girişlerine yükseltebilir L1
  • Kapsayıcı yeniden başlatılırsa, L1 bir isabetin ardından L2 gelen bir isabet yine de veritabanı gidiş dönüşünü önleyebilir

Bu bileşim, ölçeği genişletilmiş veya geri dönüştürülmüş örnekler arasında sıcak bir dağıtılmış önbellek sağlar.

Redis desteği

Redis, 2. düzey önbelleğin geçerli sağlayıcısıdır. Aşağıdakiler desteklendiği için bu senaryo için uygundur:

  • Birden çok DAB örneği arasında paylaşılan erişim
  • TTL tabanlı önbelleğe alma için anahtar süre sonu
  • Yüksek aktarım hızına sahip iş yükleri için hızlı okuma ve yazma işlemleri
  • Örnekler arasında arka plan koordinasyonu

Bölümlenmiş önbellek alanları

Dağıtılmış önbellek etkinliğini yalıtmak için isteğe bağlı partition ayarını kullanın. DAB, redis anahtarlarının ad alanı ve arka plan kanalı için bölüm değerini kullanır. Yalnızca aynı bölümü paylaşan kapsayıcılar aynı dağıtılmış önbellek alanına katılır.

Bu ayar, aşağıdaki durumlarda kullanışlıdır:

  • Üretim ve üretim dışı trafiği ayırma
  • Kiracıları veya ortamları yalıtma
  • İlişkili olmayan hizmetlerin önbelleğe alınmış girdileri paylaşmasını engelleme

Ayrıca bakınız