REACTIVE MICROSERVICES
mitVert.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
REACTIVE
Antwortbereit
Elastisch Widerstandsfähig
Nachrichtenorientiert
Antwortbereit
Elastisch Widerstandsfähig
Nachrichtenorientiert
Object 1 Object 2
Object 1 Object 2
Bus
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", ...)
Verticle
Verticle
Verticle
Verticle
MAVEN SERVICES
Antwortbereit
Elastisch Widerstandsfähig
Nachrichtenorientiert
HYSTRIX
CIRCUIT BREAKER
COMMANDS
EVENT STREAM
VERT.X
+ ELK
REACTIVE STREAMS
ROUND ROBIN / HA
TIME OUT
Antwortbereit
Elastisch Widerstandsfähig
Nachrichtenorientiert
MICRO SERVICES
FAT JAR
Verticle
Verticle
Verticle
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
MONOLITH
S1
S2
S3
S1 S1
S2
S1
S2
S3
S1 S1
S2
S1
S2
S3
S1 S1
S2
Reactive Microservices mit Vert.x 3
Reactive Microservices mit Vert.x 3

Reactive Microservices mit Vert.x 3