Uvod v protokol AMQP
AMQP (Advanced Message Queuing Protocol) je standardni protokol na aplikacijski ravni, ki zagotavlja enotne storitve sporočanja in je odprt standard za protokole na aplikacijski ravni, zasnovane za vmesno programsko opremo, usmerjeno v sporočila. AMQP je omrežni protokol za prenos asinhronih sporočil med procesi.
Odjemalci in programska oprema za sporočila, ki temeljijo na tem protokolu, lahko prenašajo sporočila brez omejitev z različnimi odjemalskimi/vmesnimi programi, različnimi razvojnimi jeziki itd.
Glavne značilnosti AMQP so usmerjenost v sporočila, vrstne vrste, usmerjanje (vključno z vrstniki in objavo/naročnino), zanesljivost in varnost. AMQP uveljavlja vedenje ponudnikov sporočil in odjemalcev, kar omogoča resnično interoperabilnost med različnimi ponudniki.
Usmerjevalna sporočila
V arhitekturi AMQP je vsako uspešno usmerjanje sporočil sestavljeno iz treh delov:
- Izmenjava: Kjer producenti objavljajo sporočila
- Vrste: Kjer potrošniki prejemajo sporočila
- Vezave: Kako se sporočila usmerjajo iz stikala v določeno vrsto
Izmenjave in vezave
Kako torej sporočilo prispe do vrste? Kadarkoli želite potrošniku dostaviti sporočilo, ga morate najprej poslati izmenjevalcu. Nato bo RabbitMQ na podlagi določenih pravil ali usmerjevalnih ključev odločil, v katero čakalno vrsto naj dostavlja sporočila.
Pravila – ali usmerjevalni ključi – vam omogočajo, da na izmenjavo vežete vrsto. RabbitMQ bo poskušal uskladiti usmerjevalni ključ v sporočilu s ključem, uporabljenim v vezavi. Sporočilo se nato dostavi v vrsto na podlagi ene od štirih vrst izmenjav: fanout, topic, direct, header
Izmenjava Fanout
Ta vrsta izmenjave oddaja vsa prejeta sporočila v vse vrste, vezane nanjo. Vsi usmerjevalni ključi, ki so priloženi objavljenemu sporočilu, bodo prezrti.
Izmenjava tem
Pri tej vrsti izmenjave se sporočila pošiljajo v vrsto na podlagi usmerjevalnega ključa. To pomeni, da morajo imeti sporočila, poslana na tematsko izmenjavo, določen usmerjevalni ključ, ki mora biti seznam besed, ločenih po točkah (npr. 'acs.deviceoperations.'). Omejitev besedila je 255 bajtov.
Ključ za vezavo mora biti v enakem formatu kot usmerjevalni ključ. Zato bodo sporočila, poslana s specifičnim usmerjevalnim ključem, dostavljena vsaki vrsti z ustreznim vezavnim ključem.
Povezovalni ključi omogočajo naslednja pravila izraza:
*(zvezdica) lahko nadomesti le eno besedo # (hash) lahko nadomesti nič ali več besed Ko je vrsta vezana s ključem za vezavo "#" (zgoščenka), bo prejela vsa sporočila ne glede na usmerjevalni ključ, podobno kot pri izmenjavi Fanout fan-out.
Neposredna izmenjava
Ko je čakalna vrsta razglašena, boSamodejno se poveže s stikalom, ki uporablja ime vrste kot usmerjevalni ključ。 Če se usmerjevalni ključ ujema, se sporočilo dostavi v ustrezno vrsto.
Izmenjava glav
Stikala glave so nekoliko podobna preklopom tem, vendar je usmerjanje, za razliko od preklopov tem, osnovano na ključih za usmerjanje, vrednosti usmerjanja glavnih stikal pa na podlagi podatkov glave sporočila. Ključ za usmerjanje za preklop teme je le niz, medtem ko je glavno stikalo lahko celo število in zgoščena točka.
(Konec)
|