Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tvůrce rozhraní DATA API dlouho podporujeL1 mezipaměť v paměti a hlavičky požadavků HTTP související s mezipamětí, jako je no-store, no-cachea only-if-cached vliv na chování mezipaměti.
Mezipaměť úrovně 2L2 () rozšiřuje ukládání do mezipaměti nad rámec místního procesu přidáním vrstvy distribuované mezipaměti. Díky L2tomu je možné opakovaně používat výsledky uložené v mezipaměti napříč několika instancemi DAB a dokáže přežít restartování jednotlivých kontejnerů. Díky tomu se bezstavová nasazení cítí bezstavové ve všech správných způsobech.
Výhody mezipaměti úrovně 2
Mezipaměť úrovně 2 použijte, pokud chcete:
- Sdílení výsledků uložených v mezipaměti napříč instancemi DAB s horizontálním navýšením kapacity
- Omezení doby odezvy databáze pro opakované čtení
- Udržujte bezstavové kontejnery teplé po recyklaci nebo opětovném nasazení
- Zvýšení výkonu úloh náročných na čtení
- Účast v mezipaměti oborů názvů s oddíly
Konfigurace nastavení mezipaměti modulu runtime
Mezipaměť úrovně 2 je nakonfigurovaná globálně v rámci runtime.cache. Blok mezipaměti modulu runtime umožňuje ukládání do mezipaměti, nastaví výchozí hodnotu TTL (Time to Live) a konfiguruje zprostředkovatele distribuované mezipaměti.
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 30,
"level-2": {
"enabled": true,
"provider": "redis",
"connection-string": "localhost:6379",
"partition": "prod-api"
}
}
}
}
Vlastnosti modulu runtime
| Vlastnictví | Description |
|---|---|
enabled |
Umožňuje globální podporu mezipaměti. |
ttl-seconds |
Nastaví výchozí dobu mezipamětí v sekundách. |
level-2.enabled |
Zapne úroveň distribuované mezipaměti. |
level-2.provider |
Vybere zprostředkovatele distribuované mezipaměti. Aktuálně redis se podporuje. |
level-2.connection-string |
Připojovací řetězec instance Redis. |
level-2.partition |
Volitelný obor názvů pro klíče Redis a kanál backplane. Stejné místo v distribuované mezipaměti sdílejí jenom kontejnery, které používají stejný oddíl. |
Konfigurace chování mezipaměti specifické pro entitu
Entity můžou přepsat chování globální mezipaměti. Pomocí bloku entity cache povolte ukládání do mezipaměti, nastavte vlastní hodnotu TTL a zvolte úroveň mezipaměti.
{
"entities": {
"Products": {
"source": "dbo.Products",
"cache": { "enabled": true, "ttl-seconds": 120, "level": "L1L2" }
},
"Orders": {
"source": "dbo.Orders",
"cache": { "enabled": true, "level": "L1" }
}
}
}
Vlastnost cache.level
Slouží cache.level k řízení úrovní mezipaměti, které entita používá.
| Hodnota | Description |
|---|---|
L1 |
Pouze mezipaměť v paměti. Rychlé a místní prostředí pro aktuální proces DAB. |
L1L2 |
Mezipaměť v paměti plus distribuovaná mezipaměť. Tato úroveň je výchozí hodnotou pro entity uložené v mezipaměti. |
Pokud L2 není povolen globálně, entita nakonfigurovaná s chováním L1L2 se chová jako L1.
Jak L1L2 funguje
Návod
TL; DRL1L2 = Request → L1 → L2 → database → L2 → L1 → Response
Ve výchozím nastavení používá entita s povolenou ukládáním do mezipaměti úroveň L1L2.
-
L1je mezipaměť v paměti pro jednotlivé procesy. -
L2je vrstva distribuované mezipaměti, v současné době Redis a backplane pro soudržnost mezi instancemi.
Nejprve se při vyhledávání mezipaměti pomocí L1L2 provádí kontrola L1. Při neúspěšné L1 chybě zkontroluje L2 , jestli je globální povolené a nakonfigurované ukládání do mezipaměti úrovně 2. Pokud se položka nenajde v žádné vrstvě, DAB spustí databázový dotaz. Výsledek se pak uloží do obou L1 a L2.
To znamená:
- Budoucí požadavky na stejnou instanci se obsluhují z místního prostředí.
L1 - Požadavky na jiné instance mohou číst
L2a propagovat vstup do vlastníchL1 - Pokud se kontejner restartuje, neúspěšná odezva, za
L2kterou následuje hit,L1se stále může vyhnout odezvě databáze.
Tato kombinace poskytuje teplou distribuovanou mezipaměť napříč škálovaným nebo recyklovanými instancemi.
Podpora Redis
Redis je aktuální zprostředkovatel pro mezipaměť úrovně 2. Pro tento scénář je dobře vhodný, protože podporuje:
- Sdílený přístup napříč několika instancemi DAB
- Vypršení platnosti klíče pro ukládání do mezipaměti založené na hodnotě TTL
- Rychlé čtení a zápisy pro úlohy s vysokou propustností
- Koordinace backplane napříč instancemi
Dělené prostory mezipaměti
Pomocí volitelného partition nastavení můžete izolovat aktivitu distribuované mezipaměti. Jazyk DAB používá hodnotu oddílu k oboru názvů klíčů Redis a kanálu backplane. Do stejného prostoru distribuované mezipaměti se účastní jenom kontejnery, které sdílejí stejný oddíl.
Toto nastavení je užitečné, když chcete:
- Oddělení produkčního a neprodukčního provozu
- Izolace tenantů nebo prostředí
- Zabránění sdílení položek uložených v mezipaměti nesouvisejícími službami