Apigee Edge zapewnia buforowanie na potrzeby trwałości danych między żądaniami. Po otrzymaniu danych z interfejsu API są one przechowywane w pamięci podręcznej przez krótki czas, a następnie usuwane. Maksymalny czas przechowywania danych przed ich usunięciem to czas wygaśnięcia lub czas życia (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 tej wartości, aby poprawić wydajność interfejsu API.
Typy pamięci podręcznej
Dane interfejsu API są przechowywane w 2 rodzajach pamięci podręcznej:
- Poziom 1 (L1): pamięć podręczna pamięci RAM, która zapewnia szybszy dostęp, ale ma mniejszą pojemność.
- Poziom 2 (L2): stała pamięć podręczna w magazynie danych Cassandra, która ma wolniejszy dostęp, ale większą dostępną pojemność.
Gdy wpis danych w pamięci podręcznej L1 osiągnie czas TTL L1, zostanie usunięty. Jednak kopia wpisu jest przechowywana w pamięci podręcznej L2 (która ma dłuższy czas TTL niż pamięć podręczna L1), gdzie pozostaje dostępna dla innych procesorów komunikatów. Więcej informacji o pamięci podręcznej znajdziesz w sekcji Poziomy pamięci podręcznej w pamięci i trwałej.
Maksymalna wartość TTL L1
W Edge dla chmury prywatnej możesz ustawić maksymalny czas TTL pamięci podręcznej L1 dla każdego procesora komunikatów, używając właściwości Max L1 TTL (conf_cache_max.l1.ttl.in.seconds).
Wpis w pamięci podręcznej L1 wygaśnie po osiągnięciu wartości Max L1 TTL i zostanie usunięty.
Uwagi:
- Domyślnie maksymalny czas TTL L1 jest wyłączony (wartość
-1). W takim przypadku czas TTL wpisu w pamięci podręcznej L1 jest określany przez ustawienia wygaśnięcia zasady PopulateCache (zarówno w przypadku pamięci podręcznej L1, jak i L2). - Maksymalny czas TTL L1 ma zastosowanie tylko wtedy, gdy jego wartość jest mniejsza niż ogólny czas ważności pamięci podręcznej.
Ustawianie maksymalnej wartości TTL L1
Maksymalną wartość TTL L1 możesz ustawić w procesorze komunikatów w ten sposób:
- Otwórz
plik konfiguracji
/opt/apigee/customer/application/message-processor.propertiesw edytorze. Jeśli plik nie istnieje, utwórz go. - Ustaw właściwość Max L1 TTL na odpowiednią wartość:
conf_cache_max.l1.ttl.in.seconds = 180
Zalecamy wartość
180sekund. - 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 komunikatów:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Wskazówki dotyczące ustawiania maksymalnej wartości TTL L1
Podczas ustawiania maksymalnego czasu TTL L1 pamiętaj o tych wskazówkach:
- Brakujące zdalne wywołania procedury: jeśli zauważysz brakujące zdalne wywołania procedury (RPC) między procesorami komunikatów (MP) – zwłaszcza 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 maksymalnego czasu TTL L1 wymusza szybsze usuwanie nieaktualnych wpisów i zastępowanie ich nowymi wartościami z pamięci podręcznej L2.
Rozwiązanie: zmniejsz wartośćconf_cache_max.l1.ttl.in.seconds. - Nadmierne obciążenie bazy danych Cassandra: gdy ustawisz wartość maksymalnego czasu życia danych w pamięci podręcznej L1, wpisy w pamięci podręcznej L1 będą wygasać częściej, co doprowadzi do większej liczby nietrafień w pamięci podręcznej L1 i większej liczby trafień w pamięci podręcznej L2. Ponieważ pamięć podręczna L2 będzie częściej używana, Cassandra będzie bardziej obciążona.
Rozwiązanie: zwiększconf_cache_max.l1.ttl.in.seconds
Zasadniczo dostosuj maksymalny czas życia L1 do wartości, która równoważy częstotliwość niepowodzeń RPC między procesorami wiadomości z potencjalnym obciążeniem Cassandra.
Zalecamy ustawienie wartości conf_cache_max.l1.ttl.in.seconds na co najmniej 180 sekund (3 minuty), aby przetwarzanie przebiegało bez zakłóceń.