Komentáře k článku

Django: Kešování a škálování

Velká návštěvnost webového projektu sice autora většinou těší, ale často přináší i problémy se stabilitou a dostupností systému. V předposledním díle seriálu o frameworku Django se proto podíváme na kešovací systém Djanga a na to, jak pomocí něj zvládnout příval návštěvníků.

Zpět na článek

10 komentářů k článku Django: Kešování a škálování:

  1. Martin

    Load Balancing

    Bohužel nemohu souhlasit s uvedeným způsobem škálování aplikace. Zní to jednoduše „jen přidávejte databázové a webové servery“. Jenže praxe takhle bohužel nefunguje.

    Kdybyste se v problematice více orientoval, tak byste musel vědět, že nikdo z velkých hráčů takto nefunguje, protože to nejde. Na škálování ve větším měřítku se musí jinak.

    1. Pavel DvořákAutor příspěvku

      Re: Load Balancing

      Mohl byste prosím upřesnit, proč takovýto způsob škálování není možný? Rád se nechám poučit. To co jsem naznačil v tomhle článku, platí pro postupně se rozrůstající webový projekt, ne pro „velké hráče“, kteří mají už vybudovanou infrastrukturu.

      1. veros

        Re: Load Balancing

        Prostě proto, že od určité fázi už není možné zrychlovat pouze přidáváním serverů.

        V popisovaném LAPD schématu je možné přidávat aplikační servery (pokud nejsou extrémně špatně napsané), ale úzkým hrdlem se po čase stane databáze – a tam se donekonečna přidávat nedá, zejména kvůli synchronizaci více databázových strojů.

        Ale to už se bavíme o extrémně velkých zátěžích a na ty je možné se obvykle připravit předem. Pak nastupují věci jako AppEngine/AppScale – mimochodem docela hezky řešené.

        Ale jsem spíš teoretik, takové velké zátěže jsem ještě nepotkal.

  2. bitsmith

    Dalsie moznosti

    Na vyber su dalsie, dobre skalovatelne moznosti:
    – round robin DNS load balancing
    – source IP hash-based load balancing pomocou iptables alebo pf

    Keby Statisticky urad SR nemal takeho neschopneho dodavatela IS (http://www.partnersoft.sk), tak ta druha moznost hravo zvlada spickovu zataz na redundantnom firewalle na http://volbysr.sk este v predoslych prezidentskych volbach, samozrejme LIVE. Akurat sa z toho vsetci naokolo pokakali kvoli „utoku hackerov“ na ich server, ktory bol umiestneny na ich stary 1 Mb uplink. :-)

  3. veros

    Tisíc návštěvníků za den?

    Předpokládám, že „Projekt s nejvýše tisíci návštěvníky denně“ je jen nadsázka. Dva tisíce návštěvníků pro web na Python+PostgreSQL (ne Django) mi uneslo s přehledem staré Pentium 4 a ještě zvládalo zhruba stejné množství práce s ostatními weby.

    Rozhodně díky za seriál, podíval jsem se aspoň, jak se řeší věci „jinde“.

    1. Pavel DvořákAutor příspěvku

      Re: Tisíc návštěvníků za den?

      Ano, jedná se o pouhý odhad. Záleží to na mnoha faktorech, kupříkladu složitost aplikace, rozložení návštěvníků v průběhu dne, nebo objem dat v databázi. Mimochodem označením „Projekt s nejvýše tisíci návštěvníky denně“ jsem měl na mysli 0–9999 návštěvníků denně, což je ještě v toleranci toho, co jste dával za příklad.

      1. veros

        Re: Tisíc návštěvníků za den?

        Že to záleží na různých faktorech je mi vcelku jasné, proto mne překvapila ta tisícovka – chápáno jako 1000 návštěvníků denně by to byla pro Django velmi špatná vizitka.

        Chápu a děkuji za osvětlení.

  4. Pavel DvořákAutor příspěvku

    CACHE_MIDDLEWARE_ANONYMOUS_ONLY

    Ještě jsem zapomněl zmínit konstantu CACHE_MIDDLEWARE_ANONYMOUS_ONLY, která vypíná kešování u přihlášených uživatelů. U nich je kešování vhodné potlačit, protože pak mohou nastat problémy se zobrazováním neaktuální verze stránek. (Např. uživatel zadá údaje do formuláře a poté se mu zobrazí předchozí verze.) Navíc to nedává moc smysl, kešovat v takových případech.

    1. myneur

      Re: CACHE_MIDDLEWARE_ANONYMOUS_ONLY

      Není to to samé, jako odeslání komentáře a obecně odeslání jakéhokoliv formuláře, který změní výpis stránky?

      1. Pavel DvořákAutor příspěvku

        Re: CACHE_MIDDLEWARE_ANONYMOUS_ONLY

        Odesílání formuláře a vlastně jakékoliv POST dotazy se nekešují, ale například zobrazení daného formuláře ano, tedy není to stejné.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3125