«Нужно больше шин! Eventbus based framework vertx.io»
-
Upload
- -
Category
Technology
-
view
432 -
download
0
Transcript of «Нужно больше шин! Eventbus based framework vertx.io»
![Page 1: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/1.jpg)
Vertx.ioНужно больше шин!
Eventbus-based polyglot framework
![Page 2: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/2.jpg)
Михаил Бортник
• Ruby developer в R&R Music
![Page 3: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/3.jpg)
Михаил Бортник
• Ruby developer в R&R Music
• Веду курсы Ruby в Киеве (http://kottans.org)
![Page 4: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/4.jpg)
Михаил Бортник
• Ruby developer в R&R Music
• Веду курсы Ruby в Киеве (http://kottans.org)
• github: @vessi
![Page 5: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/5.jpg)
Михаил Бортник
• Ruby developer в R&R Music
• Веду курсы Ruby в Киеве (http://kottans.org)
• github: @vessi
• twitter: @mikhailbortnyk
![Page 6: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/6.jpg)
Немного истории
• Vert.x создан в 2011 году
![Page 7: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/7.jpg)
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
![Page 8: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/8.jpg)
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
• В 2013 году перешел под крыло Eclipse
![Page 9: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/9.jpg)
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
• В 2013 году перешел под крыло Eclipse
• Базируется на netty
![Page 10: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/10.jpg)
Немного истории
• Vert.x создан в 2011 году
• Изначально принадлежал VMWare
• В 2013 году перешел под крыло Eclipse
• Базируется на netty
• В 2014 году получил “Most innovative Java
technology”
![Page 11: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/11.jpg)
Влияние
• Много заимствований от node.js
![Page 12: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/12.jpg)
Влияние
• Много заимствований от node.js
• Подход происходит из Erlang
![Page 13: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/13.jpg)
Влияние
• Много заимствований от node.js
• Подход происходит из Erlang
• Конфигурация и организация кода - от Java
![Page 14: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/14.jpg)
Особенности
• Полиглотный
![Page 15: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/15.jpg)
Особенности
• Полиглотный
• Простая модель многопоточности
![Page 16: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/16.jpg)
Особенности
• Полиглотный
• Простая модель многопоточности
• Легкое масштабирование
![Page 17: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/17.jpg)
Особенности
• Полиглотный
• Простая модель многопоточности
• Легкое масштабирование
• Распределенная шина сообщений
![Page 18: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/18.jpg)
Особенности
• Полиглотный
• Простая модель многопоточности
• Легкое масштабирование
• Распределенная шина сообщений
• Модульная система
![Page 19: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/19.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 20: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/20.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 21: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/21.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 22: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/22.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 23: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/23.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 24: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/24.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 25: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/25.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 26: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/26.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 27: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/27.jpg)
ПолиглотностьПоддерживает JVM-based языки
![Page 28: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/28.jpg)
ПолиглотностьПоддерживает JVM-based языки
…
![Page 29: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/29.jpg)
Многопоточность
• Каждый модуль выполняется как single-
threaded в изолированном окружении
![Page 30: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/30.jpg)
Многопоточность
• Каждый модуль выполняется как single-
threaded в изолированном окружении
• Модули выполняются в event loops по
количеству ядер
![Page 31: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/31.jpg)
Многопоточность
• Каждый модуль выполняется как single-
threaded в изолированном окружении
• Модули выполняются в event loops по
количеству ядер
• Отдельные потоки для блокирующих задач
![Page 32: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/32.jpg)
Многопоточность
• Каждый модуль выполняется в
фиксированном event loop
![Page 33: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/33.jpg)
Многопоточность
• Каждый модуль выполняется в
фиксированном event loop
![Page 34: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/34.jpg)
Масштабируемость
• Основан на hazelcast
![Page 35: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/35.jpg)
Масштабируемость
• Основан на hazelcast
• Легкое горизонтальное масштабирование
![Page 36: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/36.jpg)
Масштабируемость
• Основан на hazelcast
• Легкое горизонтальное масштабирование
• Работает на всех доступных ядрах
![Page 37: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/37.jpg)
Масштабируемость
• Основан на hazelcast
• Легкое горизонтальное масштабирование
• Работает на всех доступных ядрах
• Поддерживает сетевую кластеризацию
![Page 38: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/38.jpg)
Шинная архитектура
• Одинаковая шина сообщений для клиента и
сервера
![Page 39: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/39.jpg)
Шинная архитектура
• Одинаковая шина сообщений для клиента и
сервера
• Есть гейты в распространенные очереди
(RabbitMQ, ZeroMQ, Beanstalk in progress)
![Page 40: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/40.jpg)
Шинная архитектура
• Одинаковая шина сообщений для клиента и
сервера
• Есть гейты в распространенные очереди
(RabbitMQ, ZeroMQ, Beanstalk in progress)
• Типы работы - pub-sub, point-to-point
![Page 41: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/41.jpg)
Модульная система
• Есть репозиторий готовых модулей
![Page 42: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/42.jpg)
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
![Page 43: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/43.jpg)
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
• Verticles - просто куски кода
![Page 44: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/44.jpg)
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
• Verticles - просто куски кода
• Модули - набор verticles
![Page 45: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/45.jpg)
Модульная система
• Есть репозиторий готовых модулей
• Есть три типа кода: verticles, модули,
приложение
• Verticles - просто куски кода
• Модули - набор verticles
• Приложение - набор модулей
![Page 46: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/46.jpg)
Модульная система
![Page 47: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/47.jpg)
Плюсы
• JVM
![Page 48: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/48.jpg)
Плюсы
• JVM
• мультиязычность
![Page 49: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/49.jpg)
Плюсы
• JVM
• мультиязычность
• легкая масштабируемость
![Page 50: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/50.jpg)
Плюсы
• JVM
• мультиязычность
• легкая масштабируемость
• шинная архитектура
![Page 51: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/51.jpg)
Плюсы
• JVM
• мультиязычность
• легкая масштабируемость
• шинная архитектура
• real time
![Page 52: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/52.jpg)
Минусы
• JVM
![Page 53: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/53.jpg)
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
![Page 54: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/54.jpg)
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
• приложение необходимо “прогревать”
![Page 55: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/55.jpg)
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
• приложение необходимо “прогревать”
• callback hell
![Page 56: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/56.jpg)
Минусы
• JVM
• что-нибудь серьезное нужно писать на Java
• приложение необходимо “прогревать”
• callback hell
• ломает мозг
![Page 57: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/57.jpg)
Демо
![Page 58: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/58.jpg)
ДемоНу конечно, Hello world
![Page 60: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/60.jpg)
Где почитать?
• http://vertx.io/
• Real-time Web Application Development using
Vert.x 2.0
![Page 61: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/61.jpg)
Где почитать?
• http://vertx.io/
• Real-time Web Application Development using
Vert.x 2.0
• Гугл-группа
https://groups.google.com/forum/#!forum/vertx
![Page 62: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/62.jpg)
Где почитать?
• 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: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/63.jpg)
Кто использует?
• VMWare
![Page 64: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/64.jpg)
Кто использует?
• VMWare
• RedHat
![Page 65: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/65.jpg)
Кто использует?
• VMWare
• RedHat
• Peer.im
![Page 66: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/66.jpg)
Кто использует?
• VMWare
• RedHat
• Peer.im
• остальные пока опасаются
![Page 67: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/67.jpg)
Спасибо!
![Page 68: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/68.jpg)
Вопросы?
![Page 69: «Нужно больше шин! Eventbus based framework vertx.io»](https://reader035.fdocument.pub/reader035/viewer/2022062406/55abc01c1a28ab337f8b46e6/html5/thumbnails/69.jpg)
Вопросы?Но лучше не надо, я нервничаю :)