Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 13505|Vastaus: 2

ActiveMQ:n pysyvät tilausasetukset

[Kopioi linkki]
Julkaistu 9.1.2017 11.12.10 | | |

ActiveMQ:n pysyvät tilausasetukset
Asettamalla julkaisijalle PERSISTENT delivery -tilan voit käyttää pysyviä tilauksia tilaajille, mikä takaa, että Pub/Sub-ohjelma vastaanottaa kaikki julkaistut viestit.
Viestitilaukset jaetaan ei-kestäviin ja kestäviin tilauksiin, ja ei-kestävät tilaukset voivat vastaanottaa aiheeseen lähetetyt viestit vain silloin, kun asiakas on aktiivinen, eli kun asiakas on offline-tilassa, aiheeseen lähetetyt viestit katoavat eivätkä koskaan vastaanoteta. Kun asiakas on offline-tilassa, ActiveMQ tallentaa kaikki kohteelle lähetetyt viestit ID:nsä mukaan, ja kun asiakas yhdistää ActiveMQ:hun uudelleen, se saa kaikki viestit, jotka lähetetään kohteelle, kun se on offline-tilassa. Pysyvät tilaukset lisäävät ylikuormitusta ja niillä on kerrallaan vain yksi aktiivinen käyttäjä pysyvässä tilauksessa. Vaiheet pysyvän tilauksen perustamiseksi:
1. Luo asiakastunnus yhteydelle;
2. Määritä tilausnimi tilauksen aiheelle;
Yllä olevan yhdistelmän täytyy olla ainutlaatuinen.
Koodi toteuttaa pysyvät tilaukset

(1) Jonossa eli jonossa on vain yksi käyttäjä per viesti, joten pysyvyys on hyvin yksinkertaista, tallenna se tietokantaan

。 Sitten kuka tahansa kuluttaja voi noutaa sen ja hävittää sen. Ei ole väliä, vaikka kuluttaja sammuttaisi sen hetkeksi.

(2) Kun käytetään aihetta, eli tilaattaessa, jokaisella viestillä voi olla useita käyttäjiä, mikä on hankalampaa.

Ensinnäkin, olettaen, että kuluttajat ovat tavallisia kuluttajia,
------------------------
<1:n lanseerauksen jälkeen> activemq julkaistiin, uutiset 1 julkaistiin, mutta valitettavasti kuluttajia ei nyt aloita, eli kukaan ei ole tilannut. Joten

, uutinen hylättiin.

<2> Kuluttaja 1 käynnistyi, yhdisti activemq:hon, tilasi ja odotti viestiä~~

activemq julkaisee viestin 2, OK, kuluttaja 1 vastaanottaa ja käsittelee sen. Viestin hylkääminen.

<3> Consumer 2 on myös julkaistu, yhdistetty activemq:hon, tilattu ja odottaa viestiä~~

activemq julkaisee viestit 3, OK, kuluttaja 1 ja kuluttaja 2 kaikki vastaanotetaan ja käsitellään. Viestin hylkääminen.

<4> Kuluttaja 1 on pois päältä.

activemq lähettää viestin 4, OK, kuluttaja 2 vastaanottaa ja käsittelee sen. Viestin hylkääminen.

<5> Kuluttaja 1 aloitti uudelleen.

activemq julkaisee viestit 5, OK, kuluttaja 1 ja kuluttaja 2, jotka kaikki vastaanottavat ja käsittelevät ne. Viestin hylkääminen.
-----------------------------
Yhteenvetona:
ActiveMQ lähettää yksinkertaisesti viestejä tällä hetkellä julkaistulle kuluttajalle.
Kuluttajat, jotka sulkevat pois päältä, missaavat paljon viestejä eivätkä pysty vastaanottamaan niitä uudelleen.

Jos lähetetty viesti on tärkeä käyttäjän synkronointidata ja se jää huomaamatta, käyttäjätiedot eivät synkronisoida.

Miten siis saat kuluttajat saamaan vastaamattomia viestejä, kun he aloittavat uudelleen?

Vastaus on pysyvä tilaus.
-----------------------------

Tavalliset tilaukset, ilman erottelua kuluttajien välillä, jos paikalla on muutama päät, heittävät muutaman höyrytetyn sämpylän.
Pysyviä tilauksia varten sinun täytyy kirjata kuluttajan nimi.
Zhang San sanoi: Minä olen Zhang San, minulle on höyrytettyjä sämpylöitä, tulen hakemaan ne.
Li Si sanoi: Minä olen Li Si, minulle on höyrytettyjä sämpylöitä, tulen hakemaan ne.
activemq kirjoitti ylös Zhang Sanin ja Li Sin nimet.

Sitten, kun höyrytetyt sämpylät jaetaan, toinen päät antaa silti höyrytetyn sämpylän.
Jaon jälkeen, kun hän näki, ettei Zhang San puhunut, se tarkoitti, ettei hän ollut paikalla, joten jätä hänelle yksi.
Li Si puhui, joten ei ollut tarvetta jäädä.

Zhang San palasi, etsi aktiivisen mq:n ja katsoi, tämä ei ole Zhang San, tuo höyrytetyt sämpylänsä nopeasti.
Se voi olla yksi höyrytetty sämpylä tai 100 höyrytettyä sämpylää, se riippuu siitä, kuinka monta höyrytettyä sämpylää Zhang San on jakanut sen jälkeen, kun hän on lähtenyt hetkeksi.

activemq erottaa kuluttajat asiakastunnuksen ja tilaajan nimen perusteella.
-----------------------------
Luo yhteys
connection = connectionFactory.createConnection();
connection.setClientID("bbb"); Pysyvät tilaukset vaativat tämän asettamisen.
connection.start();

Luo sessio
Istuntoistunto = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);

Luo kohde
Topic topic = session.createTopic("userSyncTopic"); Aiheen nimi

MessageConsumer = session.createConsumer(topic); Tavallinen tilaus
MessageConsumer = session.createDurableSubscriber(topic,"bbb"); Pysyvät tilaukset


Toinen seikka on, että viestin tuottaja käyttää pysyvää tilaa lähettäessään viestejä
MessageProducer producer = ...;
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
Jos ei, se on oletuksena pysyvä

(5) Jos samaa "clientID:tä" käytetään, sitä pidetään samana kuluttajana. Jos kaksi ohjelmaa käyttää samaa "clientID:tä", vain toinen voi yhdistää activemq:hun samanaikaisesti, ja toinen yhteys raportoi virheen.

(6) activemq:n asetukset ovat conf/activemq.xml-tilassa, ja oletusviestit tallennetaan data/kahadb-tiedostoihin, eikä viestit katoa activemq:n uudelleenkäynnistyksen yhteydessä.

Voit käyttää http://localhost:8161/admin/index.jsp: tarkastella tietoa ajankohtaisista jonoista, aiheista ja pysyvistä tilaajista, lähettää viestejä ja muuta.

Voit kopioida sisällön activemq-jdbc.xml ja muokata sitä, ja voit tallentaa viestin muihin tietokantoihin.




Edellinen:360-lipun nappaus viidennen sukupolven VIP-kanava murtui, nopeasti VIP-jonoon
Seuraava:. .Net-alusta
 Vuokraisäntä| Julkaistu 9.1.2017 13.41.53 |
1 Jonon ja aiheen teknisten ominaisuuksien vertailu
Nimi
Aihe
Jono
Yleiskatsaus
Julkaise Tilaa viestit Julkaise tilausviestit
Pisteestä pisteeseen pisteestä pisteeseen
Valtiota ei ole
Aihetiedot ovat oletuksena tilattomia.
Jonotusdata tallennetaan oletuksena tiedostona MQ-palvelimelle, esimerkiksi Active MQ tallennetaan yleensä $AMQ_HOME\data\kr-store\data:n alle. Se voidaan myös konfiguroida tietokantavarastoksi.
Eheystakuu
Ei ole takeita, että jokainen julkaisijan julkaisema tieto hyväksytään tilaajalta.
Jono takaa, että vastaanottaja voi vastaanottaa jokaisen datan.
katoaako viesti
Yleisesti ottaen, kun julkaisija julkaisee viestin aiheesta, vain se alaryhmä, joka kuuntelee aiheen osoitetta, voi vastaanottaa viestin. Jos ei ole sub-kuuntelua, aihe katoaa.
Lähettäjä lähettää viestin kohdejonoon, ja vastaanottaja voi vastaanottaa viestejä tässä jonossa asynkronisesti. Jonossa olevat viestit eivät katoa, jos vastaanottajaa ei ole hakemassa niitä toistaiseksi.
Viestien julkaisun vastaanottopolitiikka
Yksi-moneen viestien julkaisu- ja vastaanottopolitiikka, useat alatilaajat, jotka kuuntelevat samaa aiheen osoitetta, voivat vastaanottaa julkaisijan lähettämiä viestejä. Sub vastaanottaa ilmoituksen mq-palvelimelle
Yksi yhteen -viestien julkaisu- ja vastaanottopolitiikat, lähettäjän lähettämät viestit voivat vastaanottaa vain yhden vastaanottajan. Kun vastaanottaja on vastaanottanut, MQ-palvelin ilmoittaa MQ-palvelimelle, että se on vastaanotettu, ja MQ-palvelin poistaa tai ryhtyy muihin toimiin jonossa oleville viesteille.

 Vuokraisäntä| Julkaistu 9.1.2017 13.42.15 |
Suurin ero aiheen ja jonon välillä on se, että aihe on lähetyksen muodossa, joka ilmoittaa kaikille verkkokuunteluasiakkaille uudesta viestistä, eikä asiakas ilman seurantaa vastaanota viestiä; Queue puolestaan ilmoittaa yhdelle useista kuunteluasiakaskohtauksista vertaisverkkoon.

2 Viestinkäsittelyn tehokkuuden vertailu aihe- ja jonomenetelmien välillä
        Lisäämällä kuunteluasiakkaan samanaikaisuuden määrää varmista, väheneekö aiheen viestin työntö merkittävästi kuunteluasiakkaan samanaikaisuuden lisääntyessä.
        Mitattujen tulosten perusteella aihemenetelmällä ei ole merkittävää eroa viestien lähettämisen ja vastaanottamisen tehokkuudessa yhden tilaajan ja 100 tilaajan oletuksella, mutta 500 tilaajan (säikeiden) samanaikaisuuden periaatteessa tehokkuusero on ilmeinen (500 säikeen rinnakkaisuuden vuoksi koneeni prosessorin käyttöaste on jopa 70–90 %, joten on mahdotonta varmistaa, johtuuko kyse paikallisesta testistä johtuvasta suorituskyvyn pullonkaulasta vai aiheviestin lähetysmenetelmän pullonkaulasta). mikä johtaa niin merkittävään tehokkuuden laskuun).
        Viestien lähettämisen ja vastaanottamisen tehokkuudessa ei ole merkittävää eroa aihe-menetelmän ja jonotustilan välillä yhden tilaajan ja 100 tilaajan periaatteella, mutta 500 tilaajan samanaikaisuuden periaatteessa aihe-tilan tehokkuus on merkittävästi alhaisempi kuin jonon.
        Jonotusmenetelmällä lähetettyjen viestien lähettämisen ja vastaanottamisen tehokkuus ei muutu merkittävästi yhden tilaajan, 100 tilaajan ja 500 tilaajan periaatteella.
Aiheen mittaamat tiedot:


Lähettäjän lähettämien viestien kokonaismäärä
Kaikkien tilaajien vastaanottamien viestien kokonaismäärä
Keskimääräinen aika, joka kuluu viestien lähettämiseen ja vastaanottamiseen
Yksittäinen tilaaja
100
100
101ms
100 tilaajaa
100
10000
103ms
500 tilaajaa
100
50000
14162ms

Jonossa mitatut tiedot:


Lähettäjän lähettämien viestien kokonaismäärä
Kaikkien tilaajien vastaanottamien viestien kokonaismäärä
Keskimääräinen aika, joka kuluu viestien lähettämiseen ja vastaanottamiseen
Yksittäinen tilaaja
100
100
96ms
100 tilaajaa
100
100
96ms
500 tilaajaa
100
100
100ms

Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com