Reactive Microservices mit Vert.x 3

Post on 15-Apr-2017

1.446 views 4 download

Transcript of Reactive Microservices mit Vert.x 3

REACTIVE MICROSERVICESmit Vert.x 3

Jochen Mader codecentric AG @codepitbull

?

MICRO SERVICES• klein

• eigene Datenhaltung

• unabhängige Entwicklung

• unabhängiges Deployment

• distributed by default … ?

Die Latenzzeit ist gleich Null

Der Datendurchsatz ist unendlich

Das Netzwerk ist sicher

Die Netzwerktopologie wird sich nicht ändern

Es gibt immer nur einen Netzwerkadministrator

Datentransport ist „umsonst“

Das Netzwerk ist homogen

REACTIVEAntwortbereit

Elastisch Widerstandsfähig

Nachrichtenorientiert

Antwortbereit

Elastisch Widerstandsfähig

Nachrichtenorientiert

Object 1 Object 2

Object 1 Object 2Bus

Verticle

Handler

Handler

Handler

Handler

Storage

Bus

Verticle

Handler

Handler

Handler

Handler

Storage

BROKER

Antwortbereit

Elastisch Widerstandsfähig

Nachrichtenorientiert

Verticle

Handler

Handler

Handler

Handler

Storage

Bus

Verticle

Handler

Handler

Handler

Handler

Storage

Verticle

Handler

Handler

Handler

Handler

Storage

Bus

Verticle

Handler

Handler

Handler

Handler

Storage

Verticle

Handler

Handler

Handler

Handler

Storage

Bus

Verticle

Handler

Handler

Handler

Handler

Storage

Verticle

Handler

Handler

Handler

Handler

Storage

Bus

Verticle

Handler

Handler

Handler

Handler

Storage

Apache ZooKeeper

vertx.deployVerticle("maven:com.mycompany:main-services:1.2::my-service", ...)

VerticleVerticle

VerticleVerticle

MAVEN SERVICES

Antwortbereit

Elastisch Widerstandsfähig

Nachrichtenorientiert

HYSTRIX

CIRCUIT BREAKERCOMMANDS

EVENT STREAM

VERT.X

+ ELKREACTIVE STREAMS

ROUND ROBIN / HATIME OUT

Antwortbereit

Elastisch Widerstandsfähig

Nachrichtenorientiert

MICRO SERVICES

FAT JARVerticle

VerticleVerticle

Verticle

io.vertx.core.Starter

lib.jar

lib.jar

lib.jar

lib.jar

mvn clean package

java -jar target/<appname>1.0-SNAPSHOT-fat.jar

MONOLITHS1

S2

S3

S1 S1

S2

S1

S2

S3

S1 S1

S2

S1

S2

S3

S1 S1

S2