Preza 5 Flashcards
(11 cards)
Neizravna komunikacija
komunikacija među procesima putem posrednika bez direktne interakcije pošiljatelja i primatelja
osigurava prostornu i vremensku neovisnost procesa
Komunikacija porukama
- procesi komuniciraju razmjenjujući poruke
- sudjeluju izvorište i odredište
- izvor šalje poruku, sprema se u rep
- odredište čita iz repa
- svaki rep ima jedinstven ID u sustavu
put
get - primatelj blokiran
poll - nije blokiran, provjera jel ima
obilježja:
- vremenska neovisnost - ne moraju biti istovremeno aktivni
- pošiljatelj mora znati ID repa
- perzistentna komunikacija - garantirana isporuka
- asinkrona
- na načelu pull - provjerava postoji li poruka u repu
- moguć i push pomoću listenera
Model objavi - preplati
- objavljivač (publisher) - definira obavijesti
- pretplatnik (subscriber) - pretplata/odlava na određeni skup objava
- usluga objavi-pretplati - obrađuje i pohranjuje primljene obavijesti/pretplate/odjave
- isporučuje obavijesti pretplatnicima
- perzistentna komunikacija - kontinuirani upiti -
- pretplata na kanal - tematsko grupiranje
- pretplata na sadržaj - ovisi o sadržaju objave - Obilježja :
- vremenska neovisnost
- objavljivač ne mora znati id pretplatnika, brine se posrednik
- perzistentnost
- asinkrona
- načelo push
- personalizacija primljenog sadržaja pomocu filtera
- proširivost sustava
- skalabilnost
Kvaliteta usluge za komunikaciju porukama
- garancija isporuke poruke
- najviše jednom - ne postoji sigurnosi mehanizam
- barem jednom - postoji sigurnosni mehanizam
- sigurno jednom - primatelj prima poruku jednom
- poruke mogu biti perzistente (valjane) i nevaljane
Osnovna načela usmjeravanja
- preplavljivanje
- svaka primjena poruka prosljeđuje se svim susjedima osim od koga je primljena
- posrednik posjeduje tablicu usmjeravanja
- filtriranje poruka
- cilj je isporuka samo onih obavijesti koje pretplatnika zanimaju
JMS
- JMS poslužitelj - sustav za razmjenu poruka
- Klijent
- Poruka - objekt, zaglavlje(identifikacija + adresa) + tijelo
- Odredište - objekt info o odredištu
Modeli JMS
Point - to - Point
- komunikacija porukama, jedna poruka za jedno odredište
- Klijent šalje sa s.send(m), poruka se sprema u rep
- Klijent koji prihvaća poruku sa r.recieve() gleda postoji li poruka u repu
- poruka se briše iz repa i šalje klijentu
Publish/subscribe
- objavi-pretplati, jedna poruka za skup zainteresiranih pretplatnika
- Tijekom inicijalizacije pretplatnik registrira instancu klase koja implementira sučelje MessageListener, s.setMessageListener(l). Topic pamti sve pretplate
- 2. Izvor objavljuje poruku m sa p.publish(m)
- 3. Topic isporučuje poruku pretplatniku pozivajući l.onMessage(m)
- Tijekom inicijalizacije pretplatnik registrira instancu klase koja implementira sučelje MessageListener, s.setMessageListener(l). Topic pamti sve pretplate
Poruka JMS:
zaglavlje - identifikacija i usmjeravanje
svojstva poruke - tuple ime-vrijednost…
tijelo poruke - TextMessage, StreamMessage, ObjectMessage…
AMQP
- otvoreni protokol za komunikaciju porukama i komunikaciju na načelu objavi-pretplati
Koncepti:
- Exchange - entitet unutar posrednika koji usmjerava poruke u repove
- Virtual host - logički kontejner posrednika
- Channel - virtualna veza unutar TCP konekcije
- Binding - virualna poveznica exchange i repa
- Publisher - objavljuje poruke na exchange
- Consumer - vezan uz rep i definira binding
AMQP poruke:
- header, Poruka {properties, body}, footer
- mreža ne smije mijenjati poruke
- header i footer se mogu mijenjati u mreži
- svaka poruka dobiva jedinstveni ID
- na čvoru smijie postojati samo jedna kopija poruke
- body type: byte message
Dostavljanje -
- Producer šalje poruku u exchange i dodaje routing key
- exchange putem bindinga povezan s repom
- consumer definira binding
- consumer je vezan uz rep i prima poruke
- uspoređuje se routing key i binding, ako je uvjet dobar isporučuje se poruka preko bindinga
RabbitMQ
Modeli:
- direct exchange - slicno point-to-point
- isporučuje poruku ako routing key zadovoljava uvjet bindinga
- poruka može biti isporučena na više repova
FanOut, Topic Exchange - slicno publish/subscribe
- Fanout - šalje sve poruke na sve repove spojene na exchange - Topic- omogućuje filtriranje poruka i definiranje binidnga
Kafka
sustav koji omogućuje objavljivanje i pretplatu na tokove podatak, pohranjivanje i obradu
Message, Batch, Topic, Partition, Producer, Consumer, Broker, Cluster
Dijeljeni podatkovni prostor
- arhitektura temeljena na podacima
- procesi mogu dodati, čitati i “izvaditi” tuple iz zajedničkog prostora
- tuple - slijed podataka
- operacije - write(A) - dodaje tuple
- read(a) -> A - vraća tuple A koji odgovara predlošku a
- take(b) -> B -vraća B i briše ga
Obilježja:
- vremenska neovisnost
- anonimna - temelji se na podacima
- asinkrona
- perzistentna
- na načelu pull