Coada de mesaje

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 4 aprilie 2020; verificările necesită 2 modificări .

Coada de mesaje (sau cutie poștală ) - în informatică - o componentă de  inginerie software utilizată pentru comunicarea între procese sau între fire într-un singur proces . O coadă este folosită pentru a schimba mesaje .

Paradigma cozii de mesaje este asemănătoare tiparului de publicare-abonare și face de obicei parte dintr-un sistem middleware mai mare orientat spre mesaje . Majoritatea sistemelor de mesagerie acceptă atât modele de coadă de mesaje, cât și modele de publicare-abonare în API -urile lor .

Prezentare generală

Cozile de mesaje oferă un protocol de comunicare asincron , ceea ce înseamnă că expeditorul și receptorul unui mesaj nu trebuie să interacționeze cu coada de mesaje în același timp. Mesajele aflate în coadă sunt stocate până când destinatarul le primește.

Cozile de mesaje au limite implicite sau explicite ale cantității de date care pot fi trimise într-un singur mesaj și ale numărului de mesaje care pot rămâne în coadă.

Multe implementări ale cozilor de mesaje funcționează intern, fie în sistemul de operare, fie în cadrul unei aplicații . Astfel de cozi există numai în scopul acestui sistem.

Alte implementări permit transmiterea mesajelor între diferite sisteme informatice , conectând posibil mai multe aplicații și mai multe sisteme de operare. Aceste sisteme de așteptare a mesajelor oferă de obicei funcționalitate avansată pentru rezistență , pentru a se asigura că mesajele nu se „pierde” dacă sistemul eșuează.

Aplicație

Pentru a implementa o coadă de mesaje, administratorul de sistem instalează și configurează software-ul de așteptare a mesajelor (spooler sau broker) și definește o coadă de mesaje numită. Sau sunt înregistrați la serviciul Message Queuing.

Aplicația înregistrează apoi o procedură de program care „ ascultă ” mesajele plasate în coadă .

A doua aplicație și cele ulterioare se pot conecta la coadă și îi pot trimite un mesaj .

Software-ul de gestionare a cozii stochează mesajele până când aplicația de primire se conectează și apoi apelează procedura de program înregistrată. Aplicația care primește apoi gestionează mesajul în mod corespunzător.

Există multe variante ale semanticii exacte a transmiterii mesajelor, inclusiv:

Toți acești factori pot afecta semnificativ semantica tranzacțiilor, fiabilitatea și eficiența sistemului.

Standarde și protocoale

Din punct de vedere istoric, cozile de mesaje au folosit propriile protocoale proprietare care au limitat capacitatea diferitelor sisteme de operare sau limbaje de programare de a interopera într-un set eterogen de medii.

Au apărut trei standarde și sunt utilizate în implementările open source ale Message Queuing :

  1. Advanced Message Queuing Protocol (AMQP) este un protocol bogat de caracteristici pentru coada de mesaje
  2. STOMP (STOMP) - protocol simplu de mesaje text
  3. MQTT (fostul MQ Telemetry Transport) este un protocol ușor de așteptare a mesajelor, în special pentru dispozitivele încorporate.

Aceste protocoale se află în diferite etape de standardizare și implementare. Primele două funcționează pe același strat ca HTTP , MQTT pe stratul TCP/IP .

Sincron sau asincron

Multe dintre protocoalele de comunicare cunoscute pe scară largă sunt utilizate sincron. Protocolul HTTP , utilizat pe World Wide Web și în serviciile web , oferă un exemplu ilustrativ în care un utilizator trimite o solicitare către o pagină web și apoi așteaptă un răspuns.

Cu toate acestea, există scenarii în care comportamentul sincron nu este adecvat. De exemplu, AJAX (Asynchronous JavaScript and XML ) poate fi folosit pentru a trimite mesaje text, JSON sau XML asincron pentru a actualiza o porțiune a unei pagini web cu informații mai relevante .

Implementare în UNIX

UNIX are 2 implementări comune de cozi. Unul face parte din API-ul SYS V, iar celălalt face parte din POSIX .

Vezi și

Note

Link -uri