pá 26. 10. 2018 v 23:23 odesílatel starenka . <staren...@gmail.com> napsal:
> Appka sama o sobe nemuze bezet dvakrat z duvodu, ktery tady nechci > rozebirat (ve zkratce taha to data, ktery sou stream a nemuzu se tam > pripojit vickrat a zaroven je blby kdyz kus dat ztratim. Ty data se pak > zpracovavaji zpusobem dost narocnym na zdroje pres rq, takze i tim musim > setrit, aby to na ty masine vubec jelo +- realtime). > Nevím, o co přesně jde, můžeme se o tom pobavit na Pyvu :) Ale obecně se v těhle případech snažím ten “síťový” problém oddělit do samostatné, co nejminimalističtější komponenty (procesu), a na to pak navázat už nějak normálně, aby to odpovídalo “standardům mojí infrastruktury”. Příklad: mám aplikaci, která hodně používá websockets. A já chci, aby ta spojení byla co nejstabilnější, např. aby se neresetovala, když nasadím novou verzi aplikace. Samozřejmě bych toho klienta měl mít udělaného tak, aby zkoušel reconnect, ale i to chci pokud možno minimalizovat. Tak jak to teda udělám, abych mohl nasadit novou verzi aplikace a ty websockety to nejen neshodilo, ale aby se dokonce “přesunuly” na tu novou verzi? Tak, že tu aplikaci rozdělím na “vstupní část”, která skoro nic nedělá, jen udržuje ta spojení a poskytuje nějaké úplně low-level API pro tu “aplikační část”, která teprve obsahuje nějakou business logiku. A cílem je při nasazování nové verze nasazovat jen tu aplikační část, a naopak minimalizovat hýbání s tou síťovou částí. U klasických webových aplikací tuto roli hraje v podstatě load balancer, a ten vlastně taky obvykle bývá “mimo” (hlavně v cloudu). Python je na tohle použití super, mj. díky asyncio. Ale dá se to napsat i v C/C++ za použití libuv, zmq apod. a na to pak navázat v Pythonu. No a tu aplikační část bych dal klidně do kontejneru, ale tu “low-level síťovou část” bych spíš nechal mimo (klidně i na jiném VM/hardware). Tohle se vůbec nemusí týkat Stařenky, jen píšu svůj pohled na věc :) PM -- -- E-mailová skupina django-cs@googlegroups.com Správa: http://groups.google.cz/group/django-cs --- Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny django-cs ve Skupinách Google. Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscr...@googlegroups.com. Chcete-li zobrazit tuto diskusi na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAK9Q5BQE1x0-uGDS5E5H1JSUYh7dhMeOaJD%2Bwr%3DNTpJWpEwRxg%40mail.gmail.com. Další možnosti najdete na adrese https://groups.google.com/d/optout.