Vert.x eventbus-based framework

69
Vertx.io Нужно больше шин! Eventbus-based polyglot framework

Transcript of Vert.x eventbus-based framework

Page 1: Vert.x eventbus-based framework

Vertx.ioНужно больше шин!

Eventbus-based polyglot framework

Page 2: Vert.x eventbus-based framework

Михаил Бортник• Ruby developer в R&R Music

Page 3: Vert.x eventbus-based framework

Михаил Бортник• Ruby developer в R&R Music

• Веду курсы Ruby в Киеве (http://kottans.org)

Page 4: Vert.x eventbus-based framework

Михаил Бортник• Ruby developer в R&R Music

• Веду курсы Ruby в Киеве (http://kottans.org)

• github: @vessi

Page 5: Vert.x eventbus-based framework

Михаил Бортник• Ruby developer в R&R Music

• Веду курсы Ruby в Киеве (http://kottans.org)

• github: @vessi

• twitter: @mikhailbortnyk

Page 6: Vert.x eventbus-based framework

Немного истории• Vert.x создан в 2011 году

Page 7: Vert.x eventbus-based framework

Немного истории• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

Page 8: Vert.x eventbus-based framework

Немного истории• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

• В 2013 году перешел под крыло Eclipse

Page 9: Vert.x eventbus-based framework

Немного истории• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

• В 2013 году перешел под крыло Eclipse

• Базируется на netty

Page 10: Vert.x eventbus-based framework

Немного истории• Vert.x создан в 2011 году

• Изначально принадлежал VMWare

• В 2013 году перешел под крыло Eclipse

• Базируется на netty

• В 2014 году получил “Most innovative Java technology”

Page 11: Vert.x eventbus-based framework

Влияние• Много заимствований от node.js

Page 12: Vert.x eventbus-based framework

Влияние• Много заимствований от node.js

• Подход происходит из Erlang

Page 13: Vert.x eventbus-based framework

Влияние• Много заимствований от node.js

• Подход происходит из Erlang

• Конфигурация и организация кода - от Java

Page 14: Vert.x eventbus-based framework

Особенности• Полиглотный

Page 15: Vert.x eventbus-based framework

Особенности• Полиглотный

• Простая модель многопоточности

Page 16: Vert.x eventbus-based framework

Особенности• Полиглотный

• Простая модель многопоточности

• Легкое масштабирование

Page 17: Vert.x eventbus-based framework

Особенности• Полиглотный

• Простая модель многопоточности

• Легкое масштабирование

• Распределенная шина сообщений

Page 18: Vert.x eventbus-based framework

Особенности• Полиглотный

• Простая модель многопоточности

• Легкое масштабирование

• Распределенная шина сообщений

• Модульная система

Page 19: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 20: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 21: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 22: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 23: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 24: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 25: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 26: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 27: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 28: Vert.x eventbus-based framework

ПолиглотностьПоддерживает JVM-based языки

Page 29: Vert.x eventbus-based framework

Многопоточность• Каждый модуль выполняется как single-

threaded в изолированном окружении

Page 30: Vert.x eventbus-based framework

Многопоточность• Каждый модуль выполняется как single-

threaded в изолированном окружении

• Модули выполняются в event loops по количеству ядер

Page 31: Vert.x eventbus-based framework

Многопоточность• Каждый модуль выполняется как single-

threaded в изолированном окружении

• Модули выполняются в event loops по количеству ядер

• Отдельные потоки для блокирующих задач

Page 32: Vert.x eventbus-based framework

Многопоточность• Каждый модуль выполняется в фиксированном event loop

Page 33: Vert.x eventbus-based framework

Многопоточность• Каждый модуль выполняется в фиксированном event loop

Page 34: Vert.x eventbus-based framework

Масштабируемость• Основан на hazelcast

Page 35: Vert.x eventbus-based framework

Масштабируемость• Основан на hazelcast

• Легкое горизонтальное масштабирование

Page 36: Vert.x eventbus-based framework

Масштабируемость• Основан на hazelcast

• Легкое горизонтальное масштабирование

• Работает на всех доступных ядрах

Page 37: Vert.x eventbus-based framework

Масштабируемость• Основан на hazelcast

• Легкое горизонтальное масштабирование

• Работает на всех доступных ядрах

• Поддерживает сетевую кластеризацию

Page 38: Vert.x eventbus-based framework

Шинная архитектура• Одинаковая шина сообщений для клиента и сервера

Page 39: Vert.x eventbus-based framework

Шинная архитектура• Одинаковая шина сообщений для клиента и сервера

• Есть гейты в распространенные очереди (RabbitMQ, ZeroMQ, Beanstalk in progress)

Page 40: Vert.x eventbus-based framework

Шинная архитектура• Одинаковая шина сообщений для клиента и сервера

• Есть гейты в распространенные очереди (RabbitMQ, ZeroMQ, Beanstalk in progress)

• Типы работы - pub-sub, point-to-point

Page 41: Vert.x eventbus-based framework

Модульная система• Есть репозиторий готовых модулей

Page 42: Vert.x eventbus-based framework

Модульная система• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули, приложение

Page 43: Vert.x eventbus-based framework

Модульная система• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули, приложение

• Verticles - просто куски кода

Page 44: Vert.x eventbus-based framework

Модульная система• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули, приложение

• Verticles - просто куски кода

• Модули - набор verticles

Page 45: Vert.x eventbus-based framework

Модульная система• Есть репозиторий готовых модулей

• Есть три типа кода: verticles, модули, приложение

• Verticles - просто куски кода

• Модули - набор verticles

• Приложение - набор модулей

Page 46: Vert.x eventbus-based framework

Модульная система

Page 47: Vert.x eventbus-based framework

Плюсы• JVM

Page 48: Vert.x eventbus-based framework

Плюсы• JVM

• мультиязычность

Page 49: Vert.x eventbus-based framework

Плюсы• JVM

• мультиязычность

• легкая масштабируемость

Page 50: Vert.x eventbus-based framework

Плюсы• JVM

• мультиязычность

• легкая масштабируемость

• шинная архитектура

Page 51: Vert.x eventbus-based framework

Плюсы• JVM

• мультиязычность

• легкая масштабируемость

• шинная архитектура

• real time

Page 52: Vert.x eventbus-based framework

Минусы• JVM

Page 53: Vert.x eventbus-based framework

Минусы• JVM

• что-нибудь серьезное нужно писать на Java

Page 54: Vert.x eventbus-based framework

Минусы• JVM

• что-нибудь серьезное нужно писать на Java

• приложение необходимо “прогревать”

Page 55: Vert.x eventbus-based framework

Минусы• JVM

• что-нибудь серьезное нужно писать на Java

• приложение необходимо “прогревать”

• callback hell

Page 56: Vert.x eventbus-based framework

Минусы• JVM

• что-нибудь серьезное нужно писать на Java

• приложение необходимо “прогревать”

• callback hell

• ломает мозг

Page 57: Vert.x eventbus-based framework

Демо

Page 58: Vert.x eventbus-based framework

ДемоНу конечно, Hello world

Page 59: Vert.x eventbus-based framework

Где почитать?• http://vertx.io/

Page 60: Vert.x eventbus-based framework

Где почитать?• http://vertx.io/

• Real-time Web Application Development using Vert.x 2.0

Page 61: Vert.x eventbus-based framework

Где почитать?• http://vertx.io/

• Real-time Web Application Development using Vert.x 2.0

• Гугл-группа https://groups.google.com/forum/#!forum/vertx

Page 62: Vert.x eventbus-based framework

Где почитать?• http://vertx.io/

• Real-time Web Application Development using Vert.x 2.0

• Гугл-группа https://groups.google.com/forum/#!forum/vertx

• #vertx на freenode.net

Page 63: Vert.x eventbus-based framework

Кто использует?• VMWare

Page 64: Vert.x eventbus-based framework

Кто использует?• VMWare

• RedHat

Page 65: Vert.x eventbus-based framework

Кто использует?• VMWare

• RedHat

• Peer.im

Page 66: Vert.x eventbus-based framework

Кто использует?• VMWare

• RedHat

• Peer.im

• остальные пока опасаются

Page 67: Vert.x eventbus-based framework

Спасибо!

Page 68: Vert.x eventbus-based framework

Вопросы?

Page 69: Vert.x eventbus-based framework

Вопросы?Но лучше не надо, я нервничаю :)