Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 14746|Răspunde: 1

Diferența dintre activemq Queue și Topic este că

[Copiază linkul]
Postat pe 14.07.2017 09:59:30 | | | |
Queue și Topic sunt două modele de mesagerie suportate de JMS:
        1. Model de mesagerie cu coadă punct-la-punct (PTP):
        Cu acest model de mesagerie, o aplicație (adică producătorul de mesaje) poate trimite un mesaj către o altă aplicație (adică consumatorul de mesaje). În acest model de livrare, tipul destinației mesajului este o coadă (adică instanța clasei de implementare a interfeței de destinație este creată de instanța clasei de implementare a interfeței de sesiune prin apelarea metodei createQueue și transmiterea numelui cozii). Mesajul este mai întâi livrat către o coadă specifică de pe partea serverului de mesaje, iar de acolo mesajul este livrat unui consumator care ascultă această coadă. Aceeași coadă poate asocia mai mulți producători de mesaje și consumatori de mesaje, dar un mesaj poate fi livrat doar unui singur consumator de mesaje. Dacă mai mulți consumatori de mesaje ascultă mesajele din coadă, serverul de mesaje JMS determină care consumator de mesaje primește următorul mesaj pe baza principiului "primul venit, primul venit". Dacă niciun consumator de mesaje nu ascultă coada, mesajul rămâne în coadă până când consumatorul de mesaje se conectează la coadă. Acest model de mesagerie este un model leneș sau de sondaje în sensul tradițional. În acest model, mesajele nu sunt trimise automat către consumatorul de mesaje, ci sunt solicitate din coadă de către consumatorul de mesaje.
        2. Modelul de mesagerie a subiectelor publică/abonat (publicație/sub):
        Cu acest model de mesagerie, aplicațiile pot trimite un singur mesaj către mai mulți consumatori de mesaje. În acest model de livrare, tipul de destinație al mesajului este topic (adică instanța clasei de implementare a interfeței de destinație este creată de instanța clasei de implementare a interfeței Session prin apelarea metodei createTopic și trimițând numele subiectului). Mesajul este publicat mai întâi pe un anumit subiect în serverul de mesaje de către producătorul mesajelor, care apoi transmite mesajul tuturor consumatorilor care s-au abonat la subiect. Obiectivele tematice susțin, de asemenea, abonamente pe termen lung. Un abonament pe termen lung înseamnă că consumatorul este înscris în scopul subiectului, dar poate fi inactiv când mesajul ajunge la destinație. Mesajul va fi primit când consumatorul este din nou activ. Dacă niciunul dintre consumatori nu este înscris într-o destinație de subiect, subiectul păstrează mesajele doar pentru consumatorii inactivi care s-au abonat pe termen lung. Spre deosebire de modelul de mesagerie PTP, modelul de mesagerie pub/sub permite mai multor abonați la subiecte să primească același mesaj. JMS păstrează mesajul până când toți abonații subiectului îl primesc. Modelul de mesagerie pub/sub este practic un model push. În acest model, mesajele sunt difuzate automat, iar consumatorii de mesaje nu trebuie să solicite sau să sondeze activ subiecte pentru a primi mesaje noi.
        Diferențele specifice sunt următoarele:

tip
Subiect
Coadă
Prezentare generală
Publică Abonează-te mesaje Publică mesaje de abonament
Punct-la-punct Punct-la-punct
Nu există stat
Datele de temă sunt fără stat în mod implicit.
Datele din coadă sunt salvate implicit ca fișier pe serverul MQ, de exemplu, Active MQ este de obicei stocat sub $AMQ_HOME\data\kr-store\data. Poate fi configurat și ca un depozit de baze de date.
Garanția integrității
Nu există nicio garanție că fiecare dată publicată de editor va fi acceptată de abonat.
Coada garantează că fiecare dată poate fi recepționată de către receptor.
dacă mesajul se va pierde
În general, când un editor publică un mesaj pentru un subiect, doar subredditul care ascultă adresa subiectului poate primi mesajul. Dacă nu ascultă sub subiect, subiectul se pierde.
Expeditorul trimite un mesaj către coada țintă, iar receptorul poate primi mesaje pe această coadă asincron. Mesajele din coadă nu se vor pierde dacă nu există un destinatar care să le preia pentru moment.
Politica de recepție a eliberării mesajelor
Politica de publicare și recepție a mesajelor unu-la-multe, mai mulți subreddits care ascultă aceeași adresă de subiect pot primi mesaje trimise de către editor. Subredditul primește notificarea către serverul mq
Politici unu-la-unu privind publicarea și recepția mesajelor, mesajele trimise de un expeditor pot fi primite doar de un singur destinatar. După ce receptorul primește, serverul MQ notifică serverul MQ că a fost primit, iar serverul MQ șterge sau ia alte acțiuni asupra mesajelor din coadă.





Precedent:Diferența dintre Google AdSense și Google AdWords
Următor:.net/c# Taobao prin mulțimea de setare a lotului trenului [cod sursă]
 Proprietarul| Postat pe 29.03.2018 13:09:01 |

Procesul de livrare a mesajelor în coadă al JMS este următorul:



Pentru modul Coadă, un editor publică un mesaj, iar receptorii inferiori îl primesc în ordinea cozii; de exemplu, dacă sunt publicate 10 mesaje, doi receptori A și B vor primi în total 10 mesaje fără duplicare.

Procesul de mesagerie tematică al JMS este prezentat mai jos:



Pentru modul tematică, dacă un editor publică un mesaj și există doi destinatari A și B de abonat, atunci sunt publicate 10 mesaje, iar A și B primesc fiecare câte 10 mesaje.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com