A Queue és a Topic két üzenetküldő modell, amelyet a JMS támogat: 1. Pont-pont (PTP) sorüzenet-küldési modell: Ezzel az üzenetmodellel egy alkalmazás (azaz az üzenet gyártója) küldhet üzenetet egy másik alkalmazásnak (azaz az üzenet fogyasztójának). Ebben a kézbesítési modellben az üzenet cél típusa egy sor (azaz a Destination interfész implementációs osztály példányát a Session interfész implementációs osztály példánya hozza létre a createQueue metódusának hívásával és a sor nevének továbbításával). Az üzenetet először egy adott sorba juttatják az üzenetszerver oldalon, majd onnan az üzenet egy olyan fogyasztóhoz jut, aki hallgatja ezt a sort. Ugyanaz a sor több üzenetkészítőt és üzenetfogyasztót is összekapcsolhat, de egy üzenetet csak egy üzenetfogyasztóhoz lehet továbbítani. Ha több üzenetfogyasztó hallgatja meg az üzeneteket a sorban, a JMS üzenetszerver a "érkezési első" elv alapján határozza meg, melyik üzenetfogyasztó kapja meg a következő üzenetet. Ha egyetlen üzenetfogyasztó sem hallgatja a sort, az üzenet a sorban marad, amíg az üzenetfogyasztó nem csatlakozik a sorhoz. Ez az üzenetküldési modell egy lustaság vagy a közvélemény-kutatási modell hagyományos értelemben. Ebben a modellben az üzeneteket nem automatikusan továbbítják az üzenetfogyasztónak, hanem a felhasználó kéri őket a sorból. 2. Publikálás/előfizetés (pub/sub) témájú üzenetküldési modell: Ezzel az üzenetmodellel az alkalmazások képesek egyetlen üzenetet több üzenetfogyasztónak küldeni. Ebben a szállítási modellben az üzenet cél típusa a téma (azaz a Destination interfész implementációs osztály példányát a Session interface implementációs osztály példánya hozza létre a createTopic metódusának hívásával és a téma nevének továbbításával). Az üzenetet először egy adott témához teszi közzé az üzenet szerverén az üzenetkészítő részéről, majd továbbítja az üzenetet minden olyan fogyasztónak, aki feliratkozott a témára. A témacélok hosszú távú előfizetéseket is támogatnak. A hosszú távú előfizetés azt jelenti, hogy a fogyasztó be van írva a téma célba, de a felhasználó inaktív lehet, amikor az üzenet eléri a célot. Az üzenetet akkor kapjuk, amikor a fogyasztó újra aktív lesz. Ha egyik fogyasztó sem regisztrált egy témahelyen, a téma csak azoknak a nem aktív felhasználóknak tartja meg az üzeneteket, akik hosszú távú előfizetésre regisztráltak. A PTP üzenetküldési modelltől eltérően a pub/sub üzenetküldési modell lehetővé teszi, hogy több téma előfizető ugyanazt az üzenetet kapja. A JMS addig tartja az üzenetet, amíg minden téma előfizető meg nem kapja. A pub/sub üzenetküldő modell lényegében egy push modell. Ebben a modellben az üzenetek automatikusan sugároznak, és az üzenetfogyasztóknak nem kell aktívan kérniük vagy kérdezniük a témákat új üzenetekhez. A konkrét különbségek a következők:
típus
| Téma
| Sor | Áttekintés
| Közzététel Feliratkozás üzenet Hirdetés előfizetéses üzenetek közzététele
| Ponttól pontig Ponttól pontig
| Nincs állam
| A téma adatai alapértelmezetten állapot nélküliek.
| A sorban lévő adatokat alapértelmezés szerint fájlként mentik el az MQ szerveren, például az Active MQ általában a $AMQ_HOME\data\kr-store\data alatt tárolódik. Konfigurálható adatbázis-tárolóként is.
| Integritás garancia
| Nincs garancia arra, hogy a kiadó által közzétett minden adat elfogadásra kerül az előfizető.
| A sor garantálja, hogy minden adatdarabot a vevő fogadhat.
| hogy az üzenet elveszik-e
| Általánosságban elmondható, amikor egy kiadó egy témához ír üzenetet, csak az a sub, amely a téma címét hallgatja, kaphatja meg az üzenetet. Ha nincs aloldali hallgató, a téma elveszik.
| A feladó üzenetet küld a cél Queue-hoz, és a vevő aszinkron módon fogadhatja az üzeneteket ezen a Queue-n. A sorban lévő üzenetek nem vesznek el, ha egyelőre nincs címadó, aki átveszi őket.
| Üzenet kiküldési és fogadási szabályzat
| Az egy-többre üzenetküldési és fogadási szabályzat esetén több aloldal is meghallgatja ugyanazt a témacímet, és a kiadó által küldött üzeneteket is megkaphatja. A sub értesítést kap az MQ szervernek
| Az egy-egy üzenetküldési és fogadási szabályzatok, amelyeket a feladó küldött üzenetek csak egy vevő kaphat. Miután a vevő átvette, az MQ szerver értesíti az MQ szervert a fogadásról, és az MQ szerver törli vagy más lépéseket tesz a sorban lévő üzenetekre.
|
|