Junior
Čo je replikácia v kontexte databáz a aplikácií?
sobes.tech AI
Odpoveď od AI
Replikácia je proces vytvárania a udržiavania viacerých kópií údajov databázy alebo stavu aplikácie na rôznych serveroch.
Ciele replikácie:
- Zvýšenie dostupnosti (High Availability): Keď jeden server zlyhá, iné repliky môžu pokračovať v obsluhe požiadaviek.
- Zlepšenie škálovateľnosti: Požiadavky na čítanie môžu byť rozdelené medzi repliky, čím sa znižuje záťaž na hlavný server.
- Geografické rozloženie (Obnova po katastrofe): Repliky môžu byť umiestnené v rôznych dátových centrách na ochranu pred lokálnymi zlyhaniami.
- Zníženie latencie: Používatelia môžu čítať údaje z najbližšej repliky.
Typy replikácie:
- Synchronná: Zmeny sa zapisujú do všetkých replík predtým, než je transakcia potvrdená klientovi. Zabezpečuje silnú konzistenciu, ale môže zvýšiť latenciu zápisu.
- Asynchrónna: Transakcia je potvrdená klientovi po zápise na hlavný server. Repliky sú aktualizované neskôr. Ponúka vyšší výkon zápisu, ale môže dôjsť k dočasnej nesúdržnosti údajov.
Replikačné režimy:
- Master-Replika (alebo Master-Slave): Jedna replika (master) prijíma všetky zápisové operácie, ostatné (repliky) iba čítajú, prijímajúc zmeny od mastera.
- Multi-Master: Viaceré repliky môžu prijímať zápisové operácie. Vyžaduje mechanizmus riešenia konfliktov.
V kontexte aplikácií môže replikácia odkazovať na vytváranie viacerých inštancií aplikácie (služieb) s rovnakými cieľmi: zvýšenie dostupnosti a škálovateľnosti. Napríklad spustenie viacerých pods v Kubernetes, z ktorých každý je replikou tej istej služby.