0
vert.x
Bartek Zdanowski
TouK
vert.x
Bartek Zdanowski
●developer @ TouK
●co-organizator Confitura
●członek Warszawa JUG
●tata i mąż :)

@BartekZdanowski
vert.x

czym jest vertx?
vert.x
●w czym problem?
rośnie liczba użytkowników mobilnych*
2,1 mld w 2012
7 mld w 2018
rośnie liczba urządzeń inteligen...
vert.x
●w czym problem?




Tomcat - 200 wątków = 200 połączeń
reszta połączeń czeka…
vert.x
●w czym problem?
●1 wątek per zadanie







jeśli wątek czeka na wynik pracy, stoi cała kolejka
zadań
tradycyjn...
vert.x
●jak można inaczej?









1 zadanie = seria zdarzeń luźno powiązanych
asynchronicznie
Zostać poinformowanym ...
vert.x
●jak można inaczej?
trzeba czekać! ale może to robić 1 wątek!

●

zdarzenie

wątek
vert.x
●jak można inaczej?
trzeba czekać! ale może to robić 1 wątek!

●

zdarzenie

reactor

wątek
vert.x
●jak to robi vert.x?




multi-reactor pattern
pulą wątków równa ilości core’ów
vert.x
●jak to robi vert.x?













od początku jest asynchroniczny
sterowany zdarzeniowo
rozproszony
skalowaln...
vert.x
demo

•
vert.x
●bezpieczna wielowątkowość?
class MyService {
public synchronized Result doSomething(Data data) {
//do some critica...
vert.x
●bezpieczna wielowątkowość?
class MyService {
public synchronized Result doSomething(Data data) {
//do some critica...
vert.x
●bezpieczna wielowątkowość!









dany verticle uruchmiony zawsze w tym samym wątku
oddzielne classloadery
e...
vert.x

Publisher

Publisher - subcriber
publish() //broadcast

EventBus

Subscriber1

Subscriber2
vert.x

Publisher

Publisher - subcriber
send() //point-to-point

EventBus

Subscriber1

Subscriber2
vert.x
●EventBus











publish - wszyscy
send - jeden, round robin
kolejkowanie
brak potwierdzenia
wiadomości ty...
vert.x
●EventBus




distributed - cluster
sięga klienta przez SockJS
vert.x

Publisher

EventBus

cluster!

Subscriber1

Subscriber2
vert.x
●Jak vert.x się skaluje









wiele instancji jednego verticle’a
cluster (automagicznie!)
eventbus rozpina s...
vert.x
●Inne właściwości
Polyglot
Java, JavaScript, CoffeeScript, Ruby, Python,
Groovy + Scala, Clojure i...PHP
Moduły + p...
vert.x
●Konkurencja?
●node.js! really?!

http://www.cubrid.org/blog/dev-platform/inside-vertx-comparison-with-nodejs/
vert.x
●Konkurencja?
●node.js! really?!

http://www.cubrid.org/blog/dev-platform/inside-vertx-comparison-with-nodejs/
vert.x
●Podsumowanie











wysoce skalowalny
bezpieczny i wielowątkowy
rozproszony EventBus
wielojęzyczny (polyg...
vert.x

Demo
vert.x

Dziękuję!
Upcoming SlideShare
Loading in...5
×

Vert.x - JDD 2013

888

Published on

Prezentacja stanowiąca wstęp do platformy/frameworka vert.x (http://vertx.io)
Prezentacja demonstrowana na JDD 2013 w Krakowie

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
888
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Vert.x - JDD 2013"

  1. 1. vert.x Bartek Zdanowski TouK
  2. 2. vert.x Bartek Zdanowski ●developer @ TouK ●co-organizator Confitura ●członek Warszawa JUG ●tata i mąż :) @BartekZdanowski
  3. 3. vert.x czym jest vertx?
  4. 4. vert.x ●w czym problem? rośnie liczba użytkowników mobilnych* 2,1 mld w 2012 7 mld w 2018 rośnie liczba urządzeń inteligentnych Internet of things - 30 mld do 2020!** IPv6 czeka na nich!       * http://mobithinking.com/mobile-marketing-tools/latest-mobile-stats/b ** http://en.wikipedia.org/wiki/Internet_of_Things
  5. 5. vert.x ●w czym problem?   Tomcat - 200 wątków = 200 połączeń reszta połączeń czeka…
  6. 6. vert.x ●w czym problem? ●1 wątek per zadanie    jeśli wątek czeka na wynik pracy, stoi cała kolejka zadań tradycyjne programowanie synchroniczne oczekiwanie na wynik (pętla!)
  7. 7. vert.x ●jak można inaczej?     1 zadanie = seria zdarzeń luźno powiązanych asynchronicznie Zostać poinformowanym o danych do przetworzenia oddać kontrolę do wątku, zamiast czekać na wynik operacji
  8. 8. vert.x ●jak można inaczej? trzeba czekać! ale może to robić 1 wątek! ● zdarzenie wątek
  9. 9. vert.x ●jak można inaczej? trzeba czekać! ale może to robić 1 wątek! ● zdarzenie reactor wątek
  10. 10. vert.x ●jak to robi vert.x?   multi-reactor pattern pulą wątków równa ilości core’ów
  11. 11. vert.x ●jak to robi vert.x?       od początku jest asynchroniczny sterowany zdarzeniowo rozproszony skalowalny bezpieczny wątkowo używa modelu aktora
  12. 12. vert.x demo •
  13. 13. vert.x ●bezpieczna wielowątkowość? class MyService { public synchronized Result doSomething(Data data) { //do some critical stuff } }
  14. 14. vert.x ●bezpieczna wielowątkowość? class MyService { public synchronized Result doSomething(Data data) { //do some critical stuff } } 1 wątek! •
  15. 15. vert.x ●bezpieczna wielowątkowość!     dany verticle uruchmiony zawsze w tym samym wątku oddzielne classloadery event bus shared data: maps, sets
  16. 16. vert.x Publisher Publisher - subcriber publish() //broadcast EventBus Subscriber1 Subscriber2
  17. 17. vert.x Publisher Publisher - subcriber send() //point-to-point EventBus Subscriber1 Subscriber2
  18. 18. vert.x ●EventBus      publish - wszyscy send - jeden, round robin kolejkowanie brak potwierdzenia wiadomości tylko w pamięci - ulotne!
  19. 19. vert.x ●EventBus   distributed - cluster sięga klienta przez SockJS
  20. 20. vert.x Publisher EventBus cluster! Subscriber1 Subscriber2
  21. 21. vert.x ●Jak vert.x się skaluje     wiele instancji jednego verticle’a cluster (automagicznie!) eventbus rozpina się pośród node’ów clustra wykorzystuje wszystkie core’y
  22. 22. vert.x ●Inne właściwości Polyglot Java, JavaScript, CoffeeScript, Ruby, Python, Groovy + Scala, Clojure i...PHP Moduły + publiczne repo Osadzanie vert.x w aplikacji Server Http + Sockety Filesystem API      
  23. 23. vert.x ●Konkurencja? ●node.js! really?! http://www.cubrid.org/blog/dev-platform/inside-vertx-comparison-with-nodejs/
  24. 24. vert.x ●Konkurencja? ●node.js! really?! http://www.cubrid.org/blog/dev-platform/inside-vertx-comparison-with-nodejs/
  25. 25. vert.x ●Podsumowanie      wysoce skalowalny bezpieczny i wielowątkowy rozproszony EventBus wielojęzyczny (polyglot) gotowy na 2020 - 30 mld urządzeń ;)
  26. 26. vert.x Demo
  27. 27. vert.x Dziękuję!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×