You are on page 1of 40

PRZETWARZANIE ASYNCHRONICZNE W ZASTOSOWANIACH WEBOWYCH

Leszek Krupi ski WebClusters 2011

Ja
 Kontakt z Linuksami od 1995 r.  Administrowanie Linuksami od 1999 r.  Programowanie dla Webu od 2000 r.  Aktualny etat: Instytut Techniczny Wojsk Lotniczych  Oprcz tego: optymalizacja serwisw, konsulting, budowanie architektury

Web
PING-PONG PING-PONG PING-PONG

Wyobra enie
 Klient wysy a zdj cie  Serwer generuje miniatury obrazkw  Serwer rozsy a komunikaty do znajomych  Serwer regeneruje RSS  Klient dostaje odpowied o powodzeniu

Realia
 Klient przesy a zdj cie  Serwer generuje miniatury  Klient po dziesi ciu sekundach si nudzi i od wie a stron  Serwer znowu generuje miniatury  Klient po kolejnych dziesi ciu sekundach si wkurza i wy cza przegl dark

Przetwarzanie asynchroniczne
Klient dostaje komunikat, przetwarzanie idzie w tle

Use Case
Generowanie miniaturek

Rozwi zanie tradycyjne I


 Zapisanie zdj cia do katalogu  Regularne przegl danie katalogu w poszukiwaniu nowych plikw  Przetwarzanie plikw  Zalety: brak op nienia dla klienta on-line  Wady: ograniczony zakres zastosowa , ma a wydajno op niona reakcja technika pull

Rozwi zanie tradycyjne II


 Dopisanie zadania do bazy SQL  Regularne przetwarzanie nowych zada Cron Job  Zalety:
 dowolno technologii
 Wsplny element: obs uga bazy danych

 Wady:
 op nione przetwarzanie
 technika pull

 tight coupling
 sztywne spinanie przetwarzania czy w kodzie, czy w konfiguracji

Odkrycie XXI wieku

Kolejka
 zwana te ogonem lub ogonkiem. Forma nietrwa ej zbiorowo ci powstaj ca przy transakcji (kolejki mieszkaniowe w PRL by y trwa e, gdy okres oczekiwania wynosi czasem powy ej 20 lat, tak e oczekiwanie na samochd w NRD trwa o kilkana cie lat). Wi e si ona ze zbyt ma liczb osb oferuj cych dany towar/us ug w stosunku do zapotrzebowania i czasu obs ugi. W wyniku tej sytuacji powstaje zgromadzenie ludzi, ktrzy organizuj kolejno obs ugi.  Prawid owy przebieg transakcji: klienci s obs ugiwani wed ug kolejno ci ich przybycia do kas (np. w sklepie) lub rejestracji (u lekarza). W niektrych przypadkach jest to zbiorowo rozproszona, np. wwczas, gdy osoby zamawiaj kolejk czyli ustalaj kolejno transakcji, jednak nie przebywaj w tej samej przestrzeni, w pobli u dokonywania transakcji pozostaj tylko osoby, ktre zostan obs u one w najbli szym czasie.

PO CO KOLEJKA W WEBIE?
 D ugotrwa e zadania
 Przetwarzanie w tle

 Rozsy anie informacji


 Jeden nadawca, wielu odbiorcw

 Pewno

transmisji

 Zapewnienie przetworzenia ka dego komunikatu

A w praktyce?

Jak to zrobi w praktyce?

Gotowe rozwi zania

Nihli Novi
Java to ma od dawna

Advanced Message Queuing Protocol


Otwarty standard

AMQP - Kolejka++
 Otwarty protok  Metoda publish-subscribe  Routing  Gotowe implementacje np. RabbitMQ  Bramki do innych protoko w

D ugotrwa e dzia ania


Mi y dodatek do pozosta ych cech

Loose coupling
Przeciwie stwo technologii ci le po czonych gniazda TCP, UDP, CORBA, RMI

Dynamika po cze
Wpinanie listenerw w razie potrzeby
 Dodawanie nowych us ug  Duplikacja danych

Tryby dzia ania


 Fanout  Direct  Topic

http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_MRG/1.1/html/Messaging_Tutorial/chap-Messaging_TutorialInitial_Concepts.html#sect-Messaging_Tutorial-Initial_Concepts-Fanout_Exchange

Fanout

http://docs.redhat.com/docs/enUS/Red_Hat_Enterprise_MRG/1.1/html/Messaging_Tutorial/chap-Messaging_TutorialInitial_Concepts.html#sect-Messaging_Tutorial-Initial_Concepts-Fanout_Exchange

Direct

http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.1/html/Messaging_Tutorial/sectMessaging_Tutorial-Initial_Concepts-Direct_Exchange.html

Topic

http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.1/html/Messaging_Tutorial/sectMessaging_Tutorial-Initial_Concepts-Topic_Exchange.html

Przeno no
Wiele platform, wiele technologii, wiele j zykw, wiele aplikacji

Load Balancing

Opcjonalnie persistence

Opcjonalnie tryb UDP-like

Show me the code

Dzi kuj za uwag .

leafnode@gmail.com http://leafnode.pl/

You might also like