areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en...
Transcript of areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en...
![Page 1: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/1.jpg)
![Page 2: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/2.jpg)
![Page 3: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/3.jpg)
![Page 4: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/4.jpg)
![Page 5: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/5.jpg)
![Page 6: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/6.jpg)
![Page 7: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/7.jpg)
Going reactive : more scalability and resilience but … no faster !
![Page 8: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/8.jpg)
running waitingrunning waiting running
![Page 9: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/9.jpg)
Server
Thread pool
![Page 10: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/10.jpg)
My threads are waiting… my server is down
![Page 11: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/11.jpg)
Java NIO : The Foundation
![Page 12: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/12.jpg)
aSync + unBlockingEvent Queue
Event
Event
Event
Worker Thread
Operation
Operation
Operation
EVENT
LOOP
Register call back
Call BackTrigger Event
![Page 13: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/13.jpg)
Reactor Pattern
![Page 14: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/14.jpg)
Server
Event Queue
Worker Thread
read
decode
compute
encode
send
![Page 15: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/15.jpg)
Everything runs in parallel… except my code …
![Page 16: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/16.jpg)
Reactive StreamReactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure
http://www.reactive-streams.org
![Page 17: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/17.jpg)
Source
Flow
Sink
![Page 18: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/18.jpg)
![Page 19: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/19.jpg)
Source
Flow
Sink
1 msg/s20 msg/s
![Page 20: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/20.jpg)
Source
Flow
Sink
1 msg/s20 msg/s
![Page 21: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/21.jpg)
Source
Flow
Sink
1 msg/s20 msg/sOutOfMemoryError
![Page 22: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/22.jpg)
Back PressureSource
Flow
Sink
20 msg/s1 msg/s 1 msg/s
Stop and Wait
![Page 23: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/23.jpg)
Source
Sink🍺
🍕
🍔
Partition Merge
Zip
![Page 24: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/24.jpg)
![Page 25: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/25.jpg)
![Page 26: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/26.jpg)
Advanced features
![Page 27: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/27.jpg)
Advanced features
![Page 28: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/28.jpg)
Advanced features
![Page 29: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/29.jpg)
![Page 30: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/30.jpg)
Devoxx 2017: Univercity VertxDevoxx 2017: Reactive SpringLightbend Blog:
https://www.lightbend.com/blog/exploring-reactive-integrations-java8-akka-streams-alpakka-kafka
References
![Page 31: areWeReactive - oodrive - 2017 - final (2)...REACTIVE PLATFORM http// ELASTIC S'adapter au trafic en temps réel. We Are ReactiVe MESSAGE DRIVEN Communication par messages asynchrones](https://reader035.fdocuments.in/reader035/viewer/2022070711/5ec990739e8dd935cd3e5743/html5/thumbnails/31.jpg)