JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara
-
Upload
hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association -
Category
Technology
-
view
914 -
download
1
description
Transcript of JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara
ZeroMQ i Java(Script)ZeroMQ i Java(Script)
Uvod
● Općenito o Message brokerima
● Po čemu se ZeroMQ razlikuje od ostalih
● Instalacija ZeroMQ-a● Instalacija ZeroMQ-a
● Primjeri u Javi i JavaScriptu
● Use case
● Demo
Izbaci uljeza
● ActiveMQ
● RabbitMQ
● HornetQ● HornetQ
● ZeroMQ
● WebSphere MQ
● BizTalk Server
Izbaci uljeza
● ActiveMQ
● RabbitMQ
● HornetQ● HornetQ
● ZeroMQ
● WebSphere MQ
● BizTalk Server
Message broker (1)
● Omogućava validaciju, transformacije i
usmjeravanje (routing) poruka
● Posredovanje u komunikaciji između različitih
aplikacija – Decoupling aplikacija
● Messaging patterns - utvrđeni obrasci za
razmjenu podataka među aplikacijama
Message broker (2)
Dodatne funkcionalnosti:
– Upravljanje
– Nadgledanje– Nadgledanje
Message broker (3)
Što je ZeroMQ? (1)
● Vrlo lightweight messaging sustav
● Zero -> bez brokera (ili što bliže tome)
● “More generally, “zero” refers to the culture of ● “More generally, “zero” refers to the culture of
minimalism that permeates the project. ”
● “Its sockets on steroids”
● Postojeći built-in patterni:
Što je ZeroMQ? (2)
● Request - Reply : remote procedure call ili task
distribution
● Publish - Subscribe : data distribution
● Pipeline : parallel task distribution
● Patterne se kreira kombiniranjem ZeroMQ
socketa
Što je ZeroMQ? (3)
● REQ - klijent koji šalje zahtjeve i očekuje
odgovore
● REP - servis koji prima zahtjeve i šalje odgovore
● DEALER - dijeli poruke grupi klijenata (round
robin)
● ROUTER - usmjerava poruke na određenog
klijenta
Što je ZeroMQ? (4)
● PUB - publisher koji distribuira podatke
● SUB - subscriber koji prima podatke od
publishera
● PUSH - šalje podatke svim prijavljenim
nodovima (round robin)
● PULL - prima podatke od nadređenih nodova
Što je ZeroMQ? (5)
● PAIR - može biti povezan samo s jednim
peerom. - inter-thread comunication
Usporedba ZeroMQ-a s AMQP-om
● AMQP nudi gotova rješenja na uobičajene
probleme
● ZeroMQ nudi alate za rješavanje tih problema
● ZeroMQ ne dolazi s postojećim brokerom već je
biblioteka funkcija od kojih developeri slože
custom brokera
Instalacija ZeroMQ-a (1)
Potrebne biblioteke:
– git
– libtools
– c++
Download:
– libzmq - ZeroMQ library
– jzmq - Java binding za ZeroMQ
Instalacija ZeroMQ-a (2)
● sudo ./autogen.sh
● sudo ./configure
● sudo make● sudo make
● sudo make install
U slučaju greške:
● sudo ldconfig
Publish - Subscribe demo (1)
Publish - Subscribe demo (2)
ZeroMQ i JavaScript
● ZmsSocket.js – ZeroMQ binding za JavaScript
● Java script ne podržava raw TCP veze → Flash
bridge
Ograničenja
– Maksimalna veličina poruke 2^32 – 10 byteova
– Nisu podržane binarne poruke
ZeroMQ i JavaScript (2)
Use Case (1)
TelefonMreža2
3
1
Aplikacija
Centrala
3
1
Use Case (2)
TelefonMreža2
Aplikacija
Centrala
2
DEMODEMO