jdd2014: reactive java - tomasz kowalczewski

10
TOMASZ KOWALCZEWSKI REACTIVE JAVA

Upload: proidea

Post on 01-Jul-2015

173 views

Category:

Software


2 download

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.

TRANSCRIPT

Page 1: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

T OM A S Z   K OW A L C Z EW S K I  

REACTIVE  JAVA  

Page 2: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

•  A  li3le  bit  of  history  •  A  few  words  about  API  •  Code!  

Page 3: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

50%

29%

15%

6%

NETFLIX US network traffic share

Netflix YouTube HTTP BitTorrent

Page 4: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

SYNCHRONOUS  PULL  COMMUNICATION  

Client   Server  

Request  

Response  

Processing

Network latency

Page 5: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

ASYNCHRONOUS  PUSH  

Processing

Network latency

Page 6: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

OBSERVABLE  STREAM  

Observer   Observable  

t  

subscribe  

onNext*  

onCompleted  

unsubscribe  

onError  

One of

Page 7: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

Erik Meijer

Page 8: JDD2014:  Reactive JAVA - Tomasz Kowalczewski
Page 9: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

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  

 

Page 10: JDD2014:  Reactive JAVA - Tomasz Kowalczewski

source: flatmapthatshit.com