Apigee Edge udostępnia buforowanie, aby zapewnić trwałość danych między żądaniami. Po odebraniu dane interfejsu API są przez krótki czas przechowywane w pamięci podręcznej, a następnie usuwane. Maksymalny czas, przez jaki dane są przechowywane przed usunięciem, nazywany jest wygaśnięciem lub czasem życia danych (TTL) pamięci podręcznej. Każda pamięć podręczna ma domyślną wartość TTL, ale w niektórych przypadkach może być konieczna zmiana wartości TTL, aby zwiększyć wydajność interfejsu API.
Typy pamięci podręcznej
Dane interfejsu API są przechowywane w 2 typach pamięci podręcznej:
- Poziom 1 (L1): pamięć podręczna z szybszym dostępem, ale z mniejszą ilością miejsca.
- Poziom 2 (L2): trwała pamięć podręczna w magazynie danych Cassandra, która ma wolniejszy dostęp, ale więcej miejsca na dane.
Gdy wpis danych w pamięci podręcznej L1 osiągnie wartość TTL na poziomie L1, zostanie on usunięty. Kopia wpisu jest jednak przechowywana w pamięci podręcznej L2 (która ma dłuższy czas TTL niż w pamięci podręcznej L1), gdzie pozostaje dostępna dla innych podmiotów przetwarzających wiadomości. Więcej informacji o pamięci podręcznej znajdziesz w sekcji Poziomy pamięci podręcznej i trwałych pamięci podręcznej.
Maksymalna wartość TTL L1
W Edge dla Private Cloud możesz ustawić maksymalną wartość TTL pamięci podręcznej L1 dla każdego podmiotu przetwarzającego wiadomości za pomocą właściwości TTL maks. L1 (conf_cache_max.l1.ttl.in.seconds
). Wpis w pamięci podręcznej L1 wygaśnie po osiągnięciu maksymalnej wartości TTL L1 i zostanie usunięty.
Uwagi:
- Domyślnie maksymalna wartość TTL L1 jest wyłączona (z wartością
-1
). W takim przypadku wartość TTL wpisu w pamięci podręcznej L1 jest określana przez ustawienia utraty ważności zasady PuulationCache (dla pamięci podręcznej L1 i L2). - Maksymalna wartość TTL L1 działa tylko wtedy, gdy jej wartość jest mniejsza niż łączny czas wygaśnięcia pamięci podręcznej.
Ustawianie maksymalnej wartości TTL L1
Maksymalną wartość TTL L1 w procesorze wiadomości możesz ustawić w ten sposób:
- Otwórz w edytorze
plik konfiguracji
/opt/apigee/customer/application/message-processor.properties
. Jeśli plik nie istnieje, utwórz go. - Ustaw właściwość Maksymalna wartość TTL L1 na żądaną wartość:
conf_cache_max.l1.ttl.in.seconds = 180
Zalecamy użycie wartości
180
s. - Upewnij się, że plik właściwości należy do użytkownika „apigee”:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Ponownie uruchom procesor wiadomości:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Wskazówki dotyczące ustawiania maksymalnej wartości TTL L1
Podczas ustawiania maksymalnej wartości TTL L1 pamiętaj o tych wytycznych:
- Niepowodzenia RPC: jeśli zauważysz braki w zdalnym wywoływaniu procedury (RPC) między procesorami wiadomości (MP) – szczególnie w wielu centrach danych – możliwe, że pamięć podręczna L1 zawiera nieaktualne wpisy, które pozostaną nieaktualne, dopóki nie zostaną usunięte z pamięci podręcznej L1. Ustawienie niższej wartości maksymalnej wartości TTL L1 wymusza wcześniejsze usunięcie nieaktualnych wpisów i zastąpienie ich nowymi wartościami z pamięci podręcznej L2.
Rozwiązanie: zmniejsz wartośćconf_cache_max.l1.ttl.in.seconds
. - Nadmierne obciążenie Casandra: jeśli ustawisz wartość maks. czasu TTL L1, wpisy pamięci podręcznej L1 będą wygasać częściej, co spowoduje więcej niezrealizowanych braków w pamięci podręcznej L1 i większej liczby trafień w pamięci podręcznej L2. Ponieważ pamięć podręczna L2 będzie miała częstsze trafienia,
Cassandra będzie mieć większe obciążenie.
Rozwiązanie: zwiększ wartośćconf_cache_max.l1.ttl.in.seconds
Ogólnie dostrajaj wartość TTL maksymalnej L1 do wartości, która równoważy częstotliwość braku RPC między MP z potencjalnym obciążeniem na Cassandra.
Aby przetwarzanie przebiegało płynnie, zalecamy ustawienie wartości conf_cache_max.l1.ttl.in.seconds
na co najmniej 180
s (3 minuty).