+ All Categories
Home > Documents > Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel...

Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel...

Date post: 22-Mar-2018
Category:
Upload: hadieu
View: 224 times
Download: 2 times
Share this document with a friend
50
@burrsutter Reactive Programming, Systems and Microservices @burrsutter http://bit.ly/reactiveworkshop https://github.com/burrsutter/reactive_tutorial_jfokus17
Transcript
Page 1: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Reactive Programming, Systems and Microservices

@burrsutter

http://bit.ly/reactiveworkshophttps://github.com/burrsutter/reactive_tutorial_jfokus17

Page 2: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Change History

0.1 - JFokus 2017

Page 3: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter developers.redhat.com

http://developers.redhat.com

Page 4: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 5: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Hej världen(Hello World)

Page 6: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

State of the Art

Page 7: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 8: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 9: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 10: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 11: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 12: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 13: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 14: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 15: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 16: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 17: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 18: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 19: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 20: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 21: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter https://www.redhat.com/en/about/videos/ikea-vs-shellshock#

Page 22: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 23: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 24: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

ThingsChUI

80’s

GUI

90’s

Web

00’s

Mobile

10’s

Page 25: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 26: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Ingestion Analytics

Sensors

Actuators

Gateway

Dashboards

Workflow

Integration

Control MessagesConfiguration

Page 27: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Reactive

Page 28: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 29: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 31: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 32: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Reactive ManifestoReactive Systems

Elastic Resilient

Message Driven

Responsive

http://www.reactivemanifesto.org/

Page 33: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Reactive programming is programming with asynchronous data streams.

Page 34: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 35: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

http://reactivex.io/https://github.com/ReactiveX/RxJava

Page 36: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 37: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 38: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Vertx.io an Eclipse project

Page 39: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Vert.x is a toolkit for building reactive

applications on the JVM.

Page 40: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

HTTP 1&2 UDP Event Bus Shared Data TCP

Hazelcast

Ignite

Zookeeper

Cluster Mgmt

Stomp

Apache Camel

RabbitMQ

Integration

AMQP

Vert.x Core

Templating

Auth & OAuth

Router

Web

Service Discovery

Circuit Breaker

Microservices

Java

Groovy

JavaScript

Languages

Ruby

MySQL/Postgres

Mongo

JDBC

Data

Redis

Hawkular Dropwizard Shell

Metrics & Ops

TCP SockJS

Bridges

Page 41: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Vert.x Verticle

Ver

ticle

1

Ver

ticle

2

Ver

ticle

3

Ver

ticle

4

Ver

ticle

5

JVM

Vert.x Instance

vertx.eventBus

A Verticle is the programmable unit – a component

A Verticle is always executed on the same thread

A single thread may execute several verticles – event loop

A Verticle Instance normally starts 1 thread/event-loop per core

Page 42: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 43: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Event Providers

Handlers

Events

while(true) {Get next eventFind interested handlersDispatch the event

}

Page 44: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 45: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Web Apps & REST

Page 46: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Page 47: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

router.get("/api/whiskies").handler(this::getAll); router.get("/api/whiskies/:id").handler(this::getOne); router.post("/api/whiskies").handler(this::addOne); router.delete("/api/whiskies/:id").handler(this::deleteOne); router.put("/api/whiskies/:id").handler(this::updateOne); // Serve static resources from the /assets directory router.route("/assets/*").handler(StaticHandler.create("assets"));

vertx .createHttpServer() .requestHandler(router::accept) .listen(8080, result -> { if (result.succeeded()) { future.complete(); } else { // could be something else is running on our port future.fail(result.cause()); } });

Vert.x HTTP Router

Page 48: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Vert.x EventBus

Ver

ticle

1

Ver

ticle

2

Ver

ticle

3

Ver

ticle

4

Ver

ticle

5

JVM

Vert.x Instance

Ver

ticle

1

Ver

ticle

2

Ver

ticle

6

Ver

ticle

7

JVM

Vert.x Instance

vertx.eventBus

Page 49: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Reactive ManifestoReactive Systems

Elastic Resilient

Message Driven

Responsive

http://www.reactivemanifesto.org/

Page 50: Microservices ... · PDF fileHazelcast Ignite Zookeeper Cluster Mgmt Stomp Apache Camel RabbitMQ Integration ... Vert.x Instance vertx.eventBus A Verticle is the programmable unit

@burrsutter

Reactive Programming, Systems and Microservices

@burrsutter

http://bit.ly/reactiveworkshophttps://github.com/burrsutter/reactive_tutorial_jfokus17


Recommended