Download - JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Transcript
Page 1: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

ZeroMQ i Java(Script)ZeroMQ i Java(Script)

Page 2: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 3: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Izbaci uljeza

● ActiveMQ

● RabbitMQ

● HornetQ● HornetQ

● ZeroMQ

● WebSphere MQ

● BizTalk Server

Page 4: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Izbaci uljeza

● ActiveMQ

● RabbitMQ

● HornetQ● HornetQ

● ZeroMQ

● WebSphere MQ

● BizTalk Server

Page 5: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 6: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Message broker (2)

Dodatne funkcionalnosti:

– Upravljanje

– Nadgledanje– Nadgledanje

Page 7: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Message broker (3)

Page 8: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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:

Page 9: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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

Page 10: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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

Page 11: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Š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

Page 12: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Što je ZeroMQ? (5)

● PAIR - može biti povezan samo s jednim

peerom. - inter-thread comunication

Page 13: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 14: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Instalacija ZeroMQ-a (1)

Potrebne biblioteke:

– git

– libtools

– c++

Download:

– libzmq - ZeroMQ library

– jzmq - Java binding za ZeroMQ

Page 15: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Instalacija ZeroMQ-a (2)

● sudo ./autogen.sh

● sudo ./configure

● sudo make● sudo make

● sudo make install

U slučaju greške:

● sudo ldconfig

Page 16: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Publish - Subscribe demo (1)

Page 17: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Publish - Subscribe demo (2)

Page 18: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

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

Page 19: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

ZeroMQ i JavaScript (2)

Page 20: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Use Case (1)

TelefonMreža2

3

1

Aplikacija

Centrala

3

Page 21: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

1

Use Case (2)

TelefonMreža2

Aplikacija

Centrala

2

Page 22: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

DEMODEMO

Page 23: JavaCro'14 - ZeroMQ and Java(Script) – Mladen Čikara

Pitanja?

[email protected]

github.com/McNullty/zeromq-examples

http://www.podsjetnik.hr/