Upload
proidea
View
173
Download
2
Embed Size (px)
DESCRIPTION
Wymagania wydajności, skalowalności i odporności na awarie stawiane przed współcześnie tworzonymi aplikacjami są coraz większe. Ruch związany z reactive manifesto promuje architekturę aplikacji, która ma nam ułatwić sprostanie tym zadaniom. Rx Java pozwala na pisanie serwisów wykonujących zadania w wielu wątkach. Podstawową jednostką przetwarzania jest zdarzenie, a Rx Java udostępnia nam warstwę abstrakcji w postaci strumieni zdarzeń oraz zestawu funkcji pozwalających na filtrowanie, grupowanie, transformację oraz łączenie ich ze sobą. Programista po stronie serwera decyduje jak i kiedy zdarzenia są generowane, a po stronie klienta w jaki sposób są one łączone z innymi strumieniami i konsumowane. W ramach prezentacji pokażę jak korzystać z biblioteki Rx Java, jak jej zastosowanie zmienia architekturę aplikacji i w czym to podejście jest lepsze od stosowania wzorców Future i Callback. Zbudujemy prosty serwis komunikujący się asynchronicznie z innymi aplikacjami. Postaramy się aby ich awarie miały minimalny wpływ na funkcjonalność naszego serwisu. Zmierzymy jego wydajność i porównamy z podejściem gdzie wątki działają synchroniczie i blokują w oczekiwaniu na dane.
Citation preview
T OM A S Z K OW A L C Z EW S K I
REACTIVE JAVA
• A li3le bit of history • A few words about API • Code!
50%
29%
15%
6%
NETFLIX US network traffic share
Netflix YouTube HTTP BitTorrent
SYNCHRONOUS PULL COMMUNICATION
Client Server
Request
Response
Processing
Network latency
ASYNCHRONOUS PUSH
Processing
Network latency
OBSERVABLE STREAM
Observer Observable
t
subscribe
onNext*
onCompleted
unsubscribe
onError
One of
Erik Meijer
MORE INFORMATION
§ Examples from this presentatnion: § h3ps://github.com/tkowalcz/presentaWons
§ h3ps://github.com/NeXlix/RxJava § h3p://www.infoq.com/author/Erik-‐Meijer § React conference § h3p://www.youtube.com/playlist?list=PLSD48HvrE7-‐Z1stQ1vIIBumB0wK0s8llY
source: flatmapthatshit.com