SlideShare une entreprise Scribd logo
1  sur  19
Get Reactive
 Responsive
 Resilient
 Elastic
 Message Driven
 asynchronous message-passing – loose couple
 location transparency
 Non-blocking – only consume resources while active
Vert.x – Reactive Toolkit
Avi Saidian @HPE
Overview
 Created by Tim Fox (VMWare) at 2011
 Joined the Eclipse Foundation at 2013
 June 24 2015 released version 3.0
 October 8 – 3.1 is out
Reactive Frameworks
 ReactiveX - http://reactivex.io/
 Typesafe
 Akka
 Dropwizard
 Vertx
 Netflix OSS
 Others…
Key Features
 Polyglot
Java
Javascript
Ruby
Groovy
Key Features
 Verticles
Basic execution unit
Actor like model
Always run in the same thread
Can have many instances
Classloader isolated
Communicate over messaging BUS
Demo
 Hello Polyglot
JS:
Key Features
 Event Bus
Point To Point
Publish/Subscribe
Request/Reply
Pass Strings, Buffer,
Primitives and JSON
Support Custom Types
(codec)
Key Features
 Ecosystem
 Lightweight vert.x core
 Web
 Data access (mongodb, redis, JDBS)
 Security (basic auth, jdbc auth, jwt, shiro)
 Reactive (based on RxJava)
Code Examples
My server code:
Code Examples
My JDBC code:
New In Vert.x 3.1
 Vertx-sync - perform async operations in a synchronous way,
but without blocking kernel threads.
 Vertx-stomp - implementation of a Simple (or Streaming) Text
Orientated Messaging Protocol
 Vertx-shell - a command line interface for the Vert.x runtime
 Next Release 3.2 – end of 2015.
Demo Time
 High Availability Server
 Load Balancing
 RealTime event bus
Live Vertx Project
 Mobile Apps Sentiment Analysis (MASA) Project:
 Async Collection Of Data
Get Comments
Detect Language
Persistency
 Async Processing of Comments
Sentiment Score
Classify
Informative Score
Persistency
2 Data Flows
Start Crawler Get Data
Identify
Language
Persist
Sentiment
Score
Classify
Informative
Score
Update
Questions?
References
 http://vertx.io/docs/
 http://vertx.io/blog/
 Source:
 https://github.com/eclipse/vert.x
 https://github.com/vert-x3/vertx-examples/
 https://github.com/vert-x3/
 http://www.infoq.com/articles/vertx-3-tim-fox
Backup: Vert.x on Docker
 There are vertx containers on Docker HUB:
 Vertx/vertx3
 Vertx-exec

Contenu connexe

Similaire à Vertx – reactive toolkit

Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016
Manuel Fomitescu
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011
Agora Group
 
Development Process, the XWiki way
Development Process, the XWiki wayDevelopment Process, the XWiki way
Development Process, the XWiki way
Eduard Moraru
 

Similaire à Vertx – reactive toolkit (20)

Vert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
Vert.x - Tehran JUG meeting Aug-2014 - Saeed ZarinfamVert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
Vert.x - Tehran JUG meeting Aug-2014 - Saeed Zarinfam
 
Lift
LiftLift
Lift
 
Backbone introduction
Backbone introductionBackbone introduction
Backbone introduction
 
ROLE Technologies – A possible contribution to Apache Rave?
ROLE Technologies – A possible contribution to Apache Rave?ROLE Technologies – A possible contribution to Apache Rave?
ROLE Technologies – A possible contribution to Apache Rave?
 
Java se7 features
Java se7 featuresJava se7 features
Java se7 features
 
An overview of OpenStack for the VMware community
An overview of OpenStack for the VMware communityAn overview of OpenStack for the VMware community
An overview of OpenStack for the VMware community
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
Silverlight 2.0
Silverlight 2.0Silverlight 2.0
Silverlight 2.0
 
Tech Days 2010
Tech  Days 2010Tech  Days 2010
Tech Days 2010
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016
 
Building High Scalability Apps With Terracotta
Building High Scalability Apps With TerracottaBuilding High Scalability Apps With Terracotta
Building High Scalability Apps With Terracotta
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011
 
Introduction to-osgi
Introduction to-osgiIntroduction to-osgi
Introduction to-osgi
 
Undertow 맛보기
Undertow 맛보기Undertow 맛보기
Undertow 맛보기
 
Development Process, the XWiki way
Development Process, the XWiki wayDevelopment Process, the XWiki way
Development Process, the XWiki way
 
ProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applicationsProtractorJS for automated testing of Angular 1.x/2.x applications
ProtractorJS for automated testing of Angular 1.x/2.x applications
 
Shmoocon 2013 - OpenStack Security Brief
Shmoocon 2013 - OpenStack Security BriefShmoocon 2013 - OpenStack Security Brief
Shmoocon 2013 - OpenStack Security Brief
 
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
QA Fes 2016. Александр Хотемской. Обзор ProtractorJS как фреймворка для брауз...
 
Building reactive systems with Akka
Building reactive systems with AkkaBuilding reactive systems with Akka
Building reactive systems with Akka
 
Fuse technology-2015
Fuse technology-2015Fuse technology-2015
Fuse technology-2015
 

Dernier

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Dernier (20)

%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Vertx – reactive toolkit

Notes de l'éditeur

  1. See http://www.reactivemanifesto.org/glossary rapid and consistent response times The system stays responsive in the face of failure stays responsive under varying workload. a system should be responsive, resilient, and elastic which is fundamentally enabled by being message driven This was an short intro to reactive which is actually implement by …
  2. For the past year, I’ve been developing a vertx project. This project was founded as part of Innovation Program and started in Hackaton Contest. Vertx just got its Most Innovative Tech of 2014 - then it got funded and we needed to choose how to develop it. There were several options, but vertx just got most innovative award for 2014, so we decided to be innovative!
  3. Timfox created HornetQ as part of Jboss Redhat project – Started vert.x project under SpringSource then moved back to Redhat with the project
  4. There are several other reactive frameworks, most are based on the Observer design pattern RX-Java is the java implementation and has also integration into vert.x
  5. unlike the traditional Java stacks, Vert.x supports other languages than Java - e.g. JS, Ruby and Groovy so we don't force you to always use Java and can use the best language for the job at hand or for the skill-set of your team. Vert.x is just a library and you can use it along with Spring in the same application – I even managed to use vertx as embedded in tomcat WAR
  6. Vert.x is non-opinioned toolkit, unlike traditional monolithic frameworks like Java EE and application servers Not a restrictive framework or container designed from day one with microservices in mind – non blocking OS threads Allowing you to build apps using building blocks incredible power and agility to create compelling, scalable with minimum fuss Java 8  less boilerplate code Vert.x is event driven and non blocking. This means your app can handle a lot of concurrency using a small number of kernel threads. Vert.x lets your app scale with minimal hardware.
  7. Show similar server with Java source code
  8. Vert.x-Web contains all the parts you need to make sophisticated modern, scalable, web applications, and of course you can use it from any of the languages that Vert.x supports. It contains all the things you'd expect - cookies and session handling, pluggable auth, templating, websockets, support for SockJS, content negotiation and many, many more features. most Java database clients tend to be blocking so you have to be careful about not blocking a Vert.x event loop. Vert.x 3 provides an asynchronous JDBC client which basically wraps the JDBC interface and calls it using a thread pool and provides an async interface to the user, so the user doesn't have to worry about wrapping it themselves it's all about scaling your application with a lot of concurrency
  9. Vertx-sync is a set of utilities that allow you to perform asynchronous operations and receive events in a synchronous way, but without blocking kernel threads. Vertx-stomp is an implementation of a STOMP server and client. You can use the STOMP server with other clients and use the STOMP client with other servers. The server and the client supports the version 1.0, 1.1 and 1.2 of the STOMP protocol. The STOMP server can also be used as a bridge with the vert.x event bus. Vertx-shell is a command line interface for the Vert.x runtime available from regular terminals using different protocols.
  10. Vert.x supports clustering and HA out of the box. Cluster group management is implemented in cluster managers which are pluggable. The default cluster manager uses Hazelcast. You can have load balancing between verticle instances – so if we start 2, we can see that under load it round between both instances Vertx event bus is used internally inside the JVM, between cluster nodes and have a bridge to the client javascript app
  11. Each Block is a different verticle with no dependency – data is sent as Message (JsonObject)