Uživatelské nástroje

Nástroje pro tento web


it:sw:distribuovane_systemy

Distribuované systémy

Distribuovaný systém je kolekce nezávislých počítačů, které spolu komunikují prostřednictvím počítačové sítě a spolupracují na dosažení společného cíle. Uživatel vnímá takový systém jako jeden ucelený uzel (transparentnost).

1. Klíčové vlastnosti

Distribuované systémy řeší problémy, které jeden superpočítač nezvládne:

  • Škálovatelnost (Scalability): Schopnost zvýšit výkon přidáním dalších běžných serverů (horizontální škálování).
  • Odolnost proti chybám (Fault Tolerance): Pokud jeden uzel selže, zbytek systému pokračuje v práci.
  • Paralelismus: Rozdělení složitého úkolu na mnoho menších částí, které se zpracovávají současně.
  • Geografická distribuce: Snížení latence tím, že jsou data blíže uživateli (např. CDN sítě).

2. CAP teorém: Svatý grál omezení

V distribuovaných systémech nelze dosáhnout všeho najednou. Eric Brewer definoval CAP teorém, podle kterého může systém splňovat pouze dvě ze tří vlastností:

  • C (Consistency): Konzistence – všichni uživatelé vidí stejná data ve stejný čas.
  • A (Availability): Dostupnost – každý dotaz obdrží odpověď (i když nemusí obsahovat nejnovější data).
  • P (Partition Tolerance): Odolnost proti rozdělení sítě – systém funguje i při výpadku komunikace mezi uzly.

3. Fallacies (Omyly) distribuovaného počítání

L. Peter Deutsch definoval 8 mýtů, kterým vývojáři často věří a které vedou k pádům systémů:

1. Síť je spolehlivá.
2. Latence je nulová.
3. Šířka pásma je nekonečná.
4. Síť je bezpečná.
5. Topologie sítě se nemění.
6. Existuje jeden správce systému.
7. Náklady na přenos dat jsou nulové.
8. Síť je homogenní.

4. Architektonické vzory

Jak se distribuované systémy organizují?

  • Client-Server: Klasický model (např. prohlížeč a webový server).
  • Peer-to-Peer (P2P): Všechny uzly jsou si rovny (např. BitTorrent, Bitcoin).
  • Mikroslužby: Rozdělení aplikace na malé služby komunikující přes API nebo Kafku.
  • Event-Driven Architecture: Systém reaguje na události (events) protékající systémem.

5. Problém konsenzu

Jak se tisíce počítačů shodnou na jedné hodnotě (např. kdo je vlastníkem Bitcoinu)? To řeší algoritmy konsenzu:

  • Paxos / Raft: Používané v distribuovaných databázích (např. etcd v Kubernetes).
  • Proof of Work: Používaný v kryptoměnách.

6. Příklady technologií

Oblast Nástroje
Zpracování dat Apache Spark, Hadoop
Zasílání zpráv Apache Kafka, RabbitMQ
Orchestrace Kubernetes
Databáze Cassandra, MongoDB, DynamoDB

Související články:

Tagy: it theory distributed-systems cap-theorem microservices scalability

it/sw/distribuovane_systemy.txt · Poslední úprava: autor: admin