Ukládání do mezipaměti v aplikaci nativní pro cloud
Tip
Tento obsah je výňatek z eBooku, Architekting Cloud Native .NET Applications for Azure, který je k dispozici na webu Docs pro .NET nebo jako soubor PDF zdarma ke stažení, který si můžete přečíst offline.
Výhody ukládání do mezipaměti jsou dobře srozumitelné. Tato technika funguje tak, že dočasně kopíruje často přístupná data z back-endového úložiště dat do rychlého úložiště , které se nachází blíže k aplikaci. Ukládání do mezipaměti se často implementuje tam, kde...
- Data zůstávají relativně statická.
- Přístup k datům je pomalý, zejména v porovnání s rychlostí mezipaměti.
- Na data se vztahují vysoké úrovně kolizí.
Proč?
Jak je popsáno v pokynech k ukládání do mezipaměti Microsoftu, může ukládání do mezipaměti zvýšit výkon, škálovatelnost a dostupnost jednotlivých mikroslužeb a systému jako celku. Snižuje latenci a kolize zpracování velkých objemů souběžných požadavků do úložiště dat. S rostoucím objemem dat a počtem uživatelů se tím větší výhody ukládání do mezipaměti stanou.
Ukládání do mezipaměti je nejúčinnější, když klient opakovaně čte data, která jsou neměnná nebo se mění zřídka. Mezi příklady patří referenční informace, jako jsou informace o produktech a cenách, nebo sdílené statické prostředky, které jsou nákladné k vytvoření.
I když by mikroslužby měly být bezstavové, distribuovaná mezipaměť může v případě potřeby podporovat souběžný přístup k datům stavu relace.
Zvažte také ukládání do mezipaměti, abyste se vyhnuli opakovaným výpočtům. Pokud operace transformuje data nebo provádí složitý výpočet, ukažte výsledek pro následné požadavky do mezipaměti.
Architektura mezipaměti
Nativní cloudové aplikace obvykle implementují distribuovanou architekturu ukládání do mezipaměti. Mezipaměť je hostovaná jako cloudová backingová služba odděleně od mikroslužeb. Obrázek 5–15 znázorňuje architekturu.
Obrázek 5–15: Ukládání do mezipaměti v nativní cloudové aplikaci
Na předchozím obrázku si všimněte, jak je mezipaměť nezávislá na mikroslužbách a sdílí ji. V tomto scénáři je mezipaměť vyvolána bránou rozhraní API. Jak je popsáno v kapitole 4, brána slouží jako front-end pro všechny příchozí požadavky. Distribuovaná mezipaměť zvyšuje odezvu systému vrácením dat uložených v mezipaměti, kdykoli je to možné. Kromě toho oddělení mezipaměti od služeb umožňuje, aby mezipaměť nezávisle na sobě navýšila nebo navyšila kapacitu, aby splňovala zvýšené požadavky na provoz.
Předchozí obrázek představuje běžný vzor ukládání do mezipaměti známý jako model doplňování do mezipaměti. U příchozího požadavku nejprve odešlete dotaz na odpověď v mezipaměti (krok 1). Pokud se najde, data se vrátí okamžitě. Pokud data v mezipaměti neexistují (označuje se jako neúspěšná mezipaměť), načte se z místní databáze v podřízené službě (krok 2). Potom se zapíše do mezipaměti pro budoucí žádosti (krok 3) a vrátí se volajícímu. Je třeba věnovat pozornost pravidelnému vyřazení dat uložených v mezipaměti, aby systém zůstal včasná a konzistentní.
Jak roste sdílená mezipaměť, může být užitečné rozdělit data do více uzlů. To vám může pomoct minimalizovat kolize a zlepšit škálovatelnost. Mnoho Ukládání do mezipaměti služeb podporuje možnost dynamicky přidávat a odebírat uzly a vyrovnává data napříč oddíly. Tento přístup obvykle zahrnuje clustering. Clustering zveřejňuje kolekci federovaných uzlů jako bezproblémovou a jedinou mezipaměť. Data se ale interně rozdělují mezi uzly podle předdefinované distribuční strategie, která vyrovnává zatížení rovnoměrně.
Azure Cache for Redis
Azure Cache for Redis je zabezpečená služba pro ukládání dat do mezipaměti a zasílání zpráv, která je plně spravovaná Microsoftem. Využívá se jako nabídka PaaS (Platforma jako služba), poskytuje přístup k datům s vysokou propustností a nízkou latencí. Služba je přístupná pro libovolnou aplikaci v rámci Azure nebo mimo Azure.
Služba Azure Cache for Redis spravuje přístup k opensourcovým serverům Redis hostovaným v datových centrech Azure. Služba funguje jako fasáda poskytující správu, řízení přístupu a zabezpečení. Služba nativně podporuje bohatou sadu datových struktur, včetně řetězců, hodnot hash, seznamů a sad. Pokud už vaše aplikace používá Redis, bude fungovat stejně jako se službou Azure Cache for Redis.
Azure Cache for Redis je více než jednoduchý server mezipaměti. Může podporovat řadu scénářů pro vylepšení architektury mikroslužeb:
- Úložiště dat v paměti
- Distribuovaná nerelační databáze
- Zprostředkovatel zpráv
- Konfigurace nebo server zjišťování
V případě pokročilých scénářů je možné uložit kopii dat uložených v mezipaměti na disk. Pokud katastrofická událost zakáže mezipaměť primární i repliky, mezipaměť se rekonstruuje z nejnovějšího snímku.
Azure Redis Cache je k dispozici napříč řadou předdefinovaných konfigurací a cenových úrovní. Úroveň Premium nabízí řadu funkcí na podnikové úrovni, jako je clustering, trvalost dat, geografická replikace a izolace virtuální sítě.