Johdanto AMQP-protokollaan
AMQP (Advanced Message Queuing Protocol) on sovelluskerroksen standardiprotokolla, joka tarjoaa yhtenäiset viestipalvelut ja on avoin standardi sovelluskerroksen protokollille, jotka on suunniteltu viestipohjaiseen väliohjelmistoon. AMQP on verkkoprotokolla asynkronisten viestien välittämiseen prosessien välillä.
Tähän protokollaan perustuvat asiakkaat ja viestiväliohjelmistot voivat välittää viestejä ilman, että niitä rajoittavat eri asiakas-/middleware-tuotteet, eri kehityskielet jne.
AMQP:n pääominaisuuksia ovat viestipohjainen, jonotettu, reititys (mukaan lukien vertaisverkko ja julkaise/tilaa), luotettavuus ja turvallisuus. AMQP valvoo viestintoimittajien ja asiakkaiden käyttäytymistä, mahdollistaen todellisen yhteentoimivuuden eri toimittajien välillä.
Reititysviestit
AMQP-arkkitehtuurissa onnistunut viestien reititys koostuu kolmesta osasta:
- Vaihto: Missä tuottajat julkaisevat viestejä
- Jonot: Missä kuluttajat saavat viestejä
- Sidonnat: Miten viestit reititetään kytkimestä tiettyyn jonoon
Vaihdot ja sitomiset
Miten viesti sitten päätyy jonoon? Aina kun haluat välittää viestin kuluttajalle, sinun on ensin lähetettävä se vaihtajalle. Sitten tiettyjen sääntöjen tai reititysavainten perusteella RabbitMQ päättää, mihin jonoon viestit toimitetaan.
Säännöt – eli reititysavaimet – mahdollistavat jonon sitomisen vaihtoon. RabbitMQ yrittää yhdistää viestin reititysavaimen sidonnassa käytettyyn avaimeen. Viesti toimitetaan jonoon yhden neljästä vaihtotyypistä: fanout, topic, direct, header
Fanout-vaihto
Tämä vaihtotyyppi lähettää kaikki vastaanottamansa viestit kaikille siihen sidottuille jonoille. Kaikki julkaistun viestin mukana toimitetut reititysavaimet jätetään huomiotta.
Aiheenvaihto
Tässä vaihdossa viestit lähetetään jonoon reititysavaimen perusteella. Tämä tarkoittaa, että aiheenvaihtoon lähetetyillä viesteillä täytyy olla erityinen reititysavain, joka on lista sanoja, erotettuna pisteillä (esim. 'acs.deviceoperations.'). Sanamuotoraja on 255 tavua.
Sidontaavaimen on oltava samassa muodossa kuin reititysavain. Siksi tietyllä reititysavaimella lähetetyt viestit toimitetaan jokaiselle jonoon sidottuun vastaavalla sitomisavaimella.
Sitomisavaimet mahdollistavat seuraavat lausekesäännöt:
*(tähti) voi korvata vain yhden sanan # (hash) voi korvata nollan tai useamman sanan Kun jono on sidottu "#" (hash) -sitomisavaimella, se vastaanottaa kaikki viestit reititysavaimesta riippumatta, aivan kuten Fanout-fan-out-vaihdossa.
Suora vaihto
Kun jono julistetaan, se tapahtuuSido automaattisesti kytkimeen, joka käyttää jonon nimeä reititysavaimena。 Jos reititysavain täsmää, viesti toimitetaan oikeaan jonoon.
Otsikkovaihto
Otsikkokytkimet ovat jossain määrin samankaltaisia kuin aihekytkimet, mutta toisin kuin aihekytkimissä, reititys perustuu reittiavaimiin ja otsikkokytkimien reititysarvot perustuvat viestin otsikkotietoihin. Topic-kytkimen reititysavain on vain merkkijono, kun taas otsikkokytkin voi olla kokonaisluku ja tiiviste.
(Loppu)
|