Top Banner
31

areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Jun 10, 2018

Download

Documents

vukien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 2: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 3: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 4: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 5: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 6: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 7: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Going reactive : more scalability and resilience but … no faster !

Page 8: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

running waitingrunning waiting running

Page 9: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Server

Thread pool

Page 10: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

My threads are waiting… my server is down

Page 11: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Java NIO : The Foundation

Page 12: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

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) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Reactor Pattern

Page 14: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Server

Event Queue

Worker Thread

read

decode

compute

encode

send

Page 15: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Everything runs in parallel… except my code …

Page 16: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

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) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Source

Flow

Sink

Page 18: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 19: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Source

Flow

Sink

1 msg/s20 msg/s

Page 20: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Source

Flow

Sink

1 msg/s20 msg/s

Page 21: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Source

Flow

Sink

1 msg/s20 msg/sOutOfMemoryError

Page 22: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Back PressureSource

Flow

Sink

20 msg/s1 msg/s 1 msg/s

Stop and Wait

Page 23: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Source

Sink🍺

🍕

🍔

Partition Merge

Zip

Page 24: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 25: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 26: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Advanced features

Page 27: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Advanced features

Page 28: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

Advanced features

Page 29: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017
Page 30: areWeReactive - oodrive - 2017 - final (2) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017

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) 2017: Univercity Vertx Devoxx 2017: Reactive Spring Lightbend Blog: ... areWeReactive - oodrive - 2017 - final (2).key Created Date: 6/29/2017