Apigee Edge, istekler arasında verilerin kalıcılığı için önbelleğe alma özelliği sunar. API verileri alındığında kısa bir süre için önbellekte saklanır ve ardından silinir. Bir veri parçasının silinmeden önce saklandığı maksimum süreye önbelleğin geçerlilik süresi veya yaşam süresi (TTL) denir. Her önbelleğin varsayılan bir TTL'si vardır ancak bazı durumlarda API performansını iyileştirmek için TTL değerini değiştirmeniz gerekebilir.
Önbellek türleri
API verileri iki tür önbellekte depolanır:
- 1. seviye (L1): RAM önbelleği. Daha hızlı erişim sağlar ancak depolama kapasitesi daha düşüktür.
- 2. seviye (L2): Cassandra veri deposundaki kalıcı önbellek. Bu önbelleğe erişim daha yavaştır ancak daha fazla depolama kapasitesi sunar.
L1 önbelleğindeki bir veri girişi L1 TTL'ye ulaştığında silinir. Ancak girişin bir kopyası, diğer mesaj işlemcilerin erişebileceği L2 önbelleğinde (L1 önbelleğinden daha uzun bir TTL'ye sahip) tutulur. Önbellek hakkında daha fazla bilgi için Bellek içi ve kalıcı önbellek düzeyleri başlıklı makaleyi inceleyin.
Maks. L1 TTL
Edge for Private Cloud'da, Max L1 TTL özelliğini (conf_cache_max.l1.ttl.in.seconds) kullanarak her mesaj işleyici için maksimum L1 önbellek TTL'sini ayarlayabilirsiniz.
L1 önbelleğindeki bir giriş, Max L1 TTL değerine ulaştıktan sonra geçerliliğini yitirir ve silinir.
Notlar:
- Varsayılan olarak, Maks. L1 TTL devre dışıdır (
-1değeriyle). Bu durumda, L1 önbelleğindeki bir girişin TTL'si, PopulateCache politikasının geçerlilik bitiş ayarları (hem L1 hem de L2 önbelleği için) tarafından belirlenir. - Maksimum L1 TTL, yalnızca değeri genel önbellek geçerlilik süresinden daha küçükse etkilidir.
Maksimum L1 TTL'yi ayarlama
Bir mesaj işleyicide maksimum L1 TTL'yi aşağıdaki gibi ayarlayabilirsiniz:
-
Yapılandırma dosyasını
/opt/apigee/customer/application/message-processor.propertiesbir düzenleyicide açın. Dosya mevcut değilse oluşturun. - Maks. L1 TTL özelliğini istediğiniz değere ayarlayın:
conf_cache_max.l1.ttl.in.seconds = 180
180saniye değerini öneririz. - Özellikler dosyasının "apigee" kullanıcısına ait olduğundan emin olun:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mesaj işlemcisini yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Maksimum L1 TTL'yi ayarlama yönergeleri
Maksimum L1 TTL'yi ayarlarken aşağıdaki yönergeleri göz önünde bulundurun:
- RPC eksiklikleri: Mesaj işlemcileri (MP'ler) arasında, özellikle birden fazla veri merkezinde, uzak prosedür çağrısı (RPC) eksiklikleri fark ederseniz L1 önbelleğinde eski girişler olabilir. Bu girişler, L1 önbelleğinden silinene kadar eski kalır. Maksimum L1 TTL'yi daha düşük bir değere ayarlamak, eski girişlerin daha erken kaldırılmasını ve L2 önbelleğindeki yeni değerlerle değiştirilmesini sağlar.
Çözüm:conf_cache_max.l1.ttl.in.secondsdeğerini azaltın. - Cassandra'da aşırı yük: Maksimum L1 TTL için bir değer ayarladığınızda L1 önbellek girişlerinin süresi daha sık dolar. Bu durum, daha fazla L1 önbellekte yok ve daha fazla L2 önbellek isabeti ile sonuçlanır. L2 önbelleği daha sık kullanılacağından Cassandra'nın yükü artar.
Çözüm:conf_cache_max.l1.ttl.in.secondsdeğerini artırın.
Genel bir kural olarak, Maks L1 TTL'yi MP'ler arasındaki RPC eksikliklerinin sıklığını Cassandra'daki potansiyel yükle dengeleyen bir değere ayarlayın.
İşlemlerin sorunsuz bir şekilde devam etmesi için conf_cache_max.l1.ttl.in.seconds değerini en az 180 saniye (3 dakika) olarak ayarlamanızı öneririz.