Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Konstruktor interfejsu API danych długo obsługiwany poziom 1 (L1) w pamięci podręcznej i nagłówki żądań HTTP związane z pamięcią podręczną, takie jak no-store, no-cachei only-if-cached wpływają na zachowanie pamięci podręcznej.
Pamięć podręczna poziomu 2 (L2) rozszerza buforowanie poza proces lokalny przez dodanie warstwy rozproszonej pamięci podręcznej. W systemie L2buforowane wyniki mogą być ponownie używane w wielu wystąpieniach daB i mogą przetrwać ponowne uruchomienie poszczególnych kontenerów, co sprawia, że wdrożenia bezstanowe czują się mniej bezstanowe we wszystkich właściwych sposobach.
Zalety pamięci podręcznej poziomu 2
Użyj pamięci podręcznej poziomu 2, jeśli chcesz:
- Udostępnianie buforowanych wyników w przypadku skalowanych w poziomie wystąpień języka DAB
- Zmniejszanie rund bazy danych w przypadku powtarzających się operacji odczytu
- Zachowaj bezstanowe pojemniki ciepłe po recyklingu lub ponownym wdróż
- Zwiększanie wydajności obciążeń z dużym obciążeniem odczytu
- Udział pamięci podręcznej przestrzeni nazw z partycjami
Konfigurowanie ustawień pamięci podręcznej środowiska uruchomieniowego
Pamięć podręczna poziomu 2 jest konfigurowana globalnie w obszarze runtime.cache. Blok pamięci podręcznej środowiska uruchomieniowego umożliwia buforowanie, ustawia domyślny czas wygaśnięcia (TTL) i konfiguruje dostawcę rozproszonej pamięci podręcznej.
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level-2": {
"enabled": true,
"provider": "redis",
"connection-string": "localhost:6379",
"partition": "prod-api"
}
}
}
}
Właściwości środowiska uruchomieniowego
| Majątek | Opis |
|---|---|
enabled |
Umożliwia obsługę pamięci podręcznej globalnie. |
ttl-seconds |
Ustawia domyślny czas wygaśnięcia pamięci podręcznej w sekundach. |
level-2.enabled |
Włącza warstwę rozproszonej pamięci podręcznej. |
level-2.provider |
Wybiera dostawcę rozproszonej pamięci podręcznej. Obecnie redis jest obsługiwana. |
level-2.connection-string |
Parametry połączenia dla wystąpienia usługi Redis. |
level-2.partition |
Opcjonalna przestrzeń nazw dla kluczy usługi Redis i kanał płaszczyzny wewnętrznej. Tylko kontenery używające tej samej partycji współużytkują ten sam rozproszony obszar pamięci podręcznej. |
Konfigurowanie zachowania pamięci podręcznej specyficznej dla jednostki
Jednostki mogą zastąpić globalne zachowanie pamięci podręcznej. Użyj bloku jednostki cache , aby włączyć buforowanie, ustawić niestandardowy czas wygaśnięcia i wybrać poziom pamięci podręcznej.
{
"entities": {
"Products": {
"source": "dbo.Products",
"cache": { "enabled": true, "ttl-seconds": 120, "level": "L1L2" }
},
"Orders": {
"source": "dbo.Orders",
"cache": { "enabled": true, "level": "L1" }
}
}
}
Właściwość cache.level
Służy cache.level do kontrolowania warstw pamięci podręcznej używanej przez jednostkę.
| Wartość | Opis |
|---|---|
L1 |
Tylko pamięć podręczna w pamięci. Szybkie i lokalne do bieżącego procesu daB. |
L1L2 |
W pamięci plus rozproszona pamięć podręczna. Ten poziom jest domyślny dla buforowanych jednostek. |
Jeśli L2 nie jest włączona globalnie, jednostka skonfigurowana z L1L2 zachowaniem jako L1.
Jak działa L1L2
Wskazówka
TL; ODZYSKIWANIE po awariiL1L2 = żądanie → L1 → L2 → bazy danych → L2 → odpowiedzi L1 →
Domyślnie jednostka z włączonym buforowaniem używa poziomu L1L2.
-
L1to pamięć podręczna w pamięci dla każdego procesu. -
L2to warstwa rozproszonej pamięci podręcznej, obecnie Redis, oraz płaszczyzna wsteczna dla spójności między wystąpieniami.
Za pomocą metody L1L2 wyszukiwanie pamięci podręcznej najpierw sprawdza L1. W przypadku błędu L1 sprawdza L2 , czy buforowanie na poziomie 2 jest globalnie włączone i skonfigurowane. Jeśli wpis nie zostanie znaleziony w żadnej warstwie, daB wykonuje zapytanie bazy danych. Wynik jest następnie przechowywany w elementach L1 i L2.
Oznacza to:
- Przyszłe żądania w tym samym wystąpieniu są obsługiwane z lokalnego
L1 - Żądania dotyczące innych wystąpień mogą odczytywać
L2i promować wpis we własnymL1 - W przypadku ponownego uruchomienia kontenera, po której następuje
L2trafienie,L1nadal może uniknąć rundy bazy danych
Ta kombinacja zapewnia gorącą rozproszoną pamięć podręczną w skalowanych w poziomie lub z recyklingu wystąpień.
Obsługa usługi Redis
Usługa Redis jest bieżącym dostawcą pamięci podręcznej poziomu 2. Jest on odpowiedni dla tego scenariusza, ponieważ obsługuje:
- Dostęp współużytkowany w wielu wystąpieniach języka DAB
- Wygaśnięcie klucza dla buforowania opartego na czas wygaśnięcia
- Szybkie operacje odczytu i zapisu dla obciążeń o wysokiej przepływności
- Koordynacja płaszczyzny wstecznej między wystąpieniami
Partycjonowane miejsca pamięci podręcznej
Użyj opcjonalnego partition ustawienia, aby odizolować działanie rozproszonej pamięci podręcznej. Język DAB używa wartości partycji do kluczy redis przestrzeni nazw i kanału płaszczyzny wstecznej. Tylko kontenery, które współużytkują tę samą partycję, uczestniczą w tym samym rozproszonym miejscu pamięci podręcznej.
To ustawienie jest przydatne, gdy chcesz:
- Oddzielanie ruchu produkcyjnego i nieprodukcyjnego
- Izolowanie dzierżaw lub środowisk
- Zapobieganie udostępnianiu buforowanych wpisów niepowiązanych usług