schnell reagiert! reaktive systeme auf der java-plattform mit vert.x und reactor

17
Schnell reagiert! Reaktive Systeme auf der Java-Plattform mit Vert.x und Reactor Martin Lehmann, Dr. Rüdiger Grammes – Frankfurter Entwicklertag 2015

Upload: martin-lehmann

Post on 12-Apr-2017

171 views

Category:

Technology


0 download

TRANSCRIPT

1

Schnell reagiert! Reaktive Systeme auf der Java-Plattform mit Vert.x und Reactor

Martin Lehmann, Dr. Rüdiger Grammes – Frankfurter Entwicklertag 2015

2 Copyright © Accso GmbH

Reaktive Systeme

Vert.x und Demo

Reactor und Demo

Fazit und Ausblick

Reaktive Systeme

3 Copyright © Accso GmbH

Was sind die Anforderungen?

Anforderungen an Performance:

Geringe Antwortzeiten, minimale Latenz, hoher Durchsatz

Anforderungen an Skalierbarkeit:steigende Nutzerzahlen, Multi-Core

Anforderungen an Verfügbarkeit:24x7, Failover, hohe Fehlertoleranz

Forderungen des Reactive Manifesto: Responsive, Resilient, Elastic, Message-Driven

4 Copyright © Accso GmbH

Anforderung: Beherrschbarkeit der Komplexität

Nebenläufigkeitsprogrammierung mit Low-Level-APIs viel zu komplex.

DisruptorReactorPattern

Aktoren-Modell

5 Copyright © Accso GmbH

Reaktive Systeme

Vert.x und Demo

Reactor und Demo

Fazit und Ausblick

Vert.x und Demo

http://vertx.io/

6 Copyright © Accso GmbH

Vert.x im Überblick

JVM 2.1.5 (und 3) modular

Laufzeit-Umgebung

nicht-blockierend

Message-Bus

polyglott

Open-Source

nebenläufig

single-threadedLaufzeitmodell

Programmiermodell

7 Copyright © Accso GmbH

Die Baustein-Architektur von Vert.x

Vert.x ClusterVert.x Laufzeitumgebung Vert.x Laufzeitumgebung

Vert.x Modul

Event-Bus

VerticleVerticleVerticleA

VerticleVerticleVerticleVerticleB

VerticleVerticleA

VerticleVerticleVerticleC

Shared Data Shared Data

Event Loop ThreadsEvent Loop Threads

Browser

Java-script

SockJS

Clustering(Hazelcast)

Clustering(Hazelcast)

9 Copyright © Accso GmbH

Die Laufzeit-Architektur von Vert.x

Vert.x Laufzeitumgebung

Event Loop Thread 1

Event Loop Thread 2

Event Loop Thread 3

Event Loop Thread 4

Zeit

Verticle A Verticle B Verticle A

Verticle C Verticle D

Verticle E Verticle F Verticle F

Verticle G Verticle H

11 Copyright © Accso GmbH

Demo

12 Copyright © Accso GmbH

Reaktive Systeme

Vert.x und Demo

Reactor und Demo

Fazit und Ausblick

Reactor und Demo

https://github.com/reactor/reactor

13 Copyright © Accso GmbH

Das Reactor Framework im Überblick

“Reactor is a foundational library building for reactive fast data applications on the JVM.”

Basisframework für reaktive Anwendungen

Keine Laufzeitumgebung

Optimiert auf Performanz und Durchsatz

Beeinflusst durch: Reactor Pattern, Java 8 Streams

14 Copyright © Accso GmbH

Der Kern von Reactor ist ein asynchroner Event-Bus

Reactor

Nimmt Events von Produzenten entgegen

HeisstEvent-Busab Version 2

Dispatcher

Schedulingund Routing von Events

Nutzt Thread-Pool, Ringbuffer, je nach Konfiguration

Selector

Bestimmt die Adressaten eines Events

Adressierung über Strings, Objekttyp, Regulären Ausdruck, …

Consumer

Verarbeitet Events

15 Copyright © Accso GmbH

Mit Reactive Streams aus der Callback-Hölle

http://www.reactive-streams.org/

Subscriber Publisher

subscribe

onSubscribe

onNext

onError

onComplete

Subscription

request(n)cancel

RxJava

Ratpack

16 Copyright © Accso GmbH

Demo

17 Copyright © Accso GmbH

Reaktive Systeme

Vert.x und Demo

Reactor und Demo

Fazit und AusblickFazit und Ausblick

18 Copyright © Accso GmbH

Zum Nachlesen

JavaSPEKTRUM 5/2014

Dr. Rüdiger Grammes, Martin Lehmann, Dr. Kristine Schaal

Gut verknotet - Vert.x im Einsatz für hochskalierbare Architekturen

PDF: http://goo.gl/j4zyb0

Dr. Rüdiger Grammes, Martin Lehmann, Dr. Kristine Schaal

Reaktive Anwendungen mit dem Reactor-Framework

http://heise.de/-2405139

19

Begeisterung für dieanspruchsvollen Aufgaben unserer Kunden

Accso – Accelerated Solutions GmbHwww.accso.detwitter.com/accso

Berliner Allee 5864295 DarmstadtTelefon: +49 (6151) 13029-0Fax: +49 (6151) 13029-10

Moltkestraße 131 a50674 KölnTelefon: +49 (221) 630691-0Fax: +49 (221) 630691-10

Theatinerstraße 1180333 MünchenTelefon: +49 (89) 71042-2040Fax: + 49 (89) 71042-2001