Koska projekti tarvitsee jonkin verran dataa siirrettäväksi ja vastaanotettavaksi, koska datamäärä on suhteellisen suuri, noin 3 miljoonaa dataa päivässä
Aluksi käytin http postia datan lähettämiseen, mutta huomasin, että se oli liian hidas ja lähetysnopeus oli paljon pienempi kuin vastaanottonopeus.
Siksi, jos haluat käyttää pitkää socket-yhteyttä datan työntämiseen ja vastaanottamiseen, kirjoita socket-palvelin ja asiakas itse, yksi on ajan hukkaa, mutta se ei välttämättä onnistu hyvin
Lopuksi activemq:ta käytetään datan työntämiseen ja vastaanottamiseen
Ensinnäkin tuottajakoodi on seuraava:
Kuluttaja, on olemassa kaksi mallia:
1: Tavallinen tilaus, ei tarvetta pysyvälle "tilaukselle", eli yhdistämisen yhteydessä voit vastaanottaa viestejä, mutta et voi vastaanottaa viestejä ennen yhdistämistä, käyttäen "CreateConsumeria". 2: Pysyvä tilaus, yhdistämisen jälkeen voit vastaanottaa dataa, jota ei ole aiemmin työnnetty, käyttämällä "CreateDurableConsumer" -toimintoa
Linkkejä CreateDurableConsumerin esittelyyn:Hyperlinkin kirjautuminen on näkyvissä.
Luo ei-jaettu pysyvä tilaus mainitulle aiheelle, jos sitä ei vielä ole olemassa, ja luo kuluttaja kyseiseen pysyvään tilaukseen. Tämä menetelmä luo pysyvän tilauksen ilman viestivalitsijaa, ja noLocal-arvo on väärin. Sovellus käyttää pysyvää tilausta, ja sen täytyy vastaanottaa kaikki aiheesta julkaistut viestit, mukaan lukien viestit, jotka julkaistaan, kun siihen ei ole aktiivisia käyttäjiä. JMS-palveluntarjoaja pitää kirjaa tästä pysyvästä tilauksesta ja varmistaa, että kaikki kyseisen julkaisijan viestit säilyvät, kunnes ne toimitetaan kuluttajalle ja vahvistetaan kyseisellä tilauksella, kunnes ne ovat vanhentuneet.
Pysyvät tilaukset jatkavat viestien keräämistä, kunnes ne poistetaan peruutusmenetelmällä.
Tätä menetelmää voidaan käyttää vain ei-jaettujen pysyvien tilausten kanssa. Kaikki tällä menetelmällä luodut pysyvät tilaukset poistetaan jakamisesta. Tämä tarkoittaa, että tilauksessa voi olla vain yksi aktiivinen (eli ei suljettu) kuluttaja kerrallaan. Tässä termi "kuluttaja" tarkoittaa TopicSubscriber-, MessageConsumer- tai JMSConsumer-objektia missä tahansa asiakkaassa.
Ei-jaettu pysyvä tilaus tunnistetaan asiakkaan määrittelemällä nimellä ja asiakastunnisteella, joka täytyy asettaa. Sovellusten, jotka sitten haluavat luoda kuluttajia ei-jaetulle pysyvälle tilaukselle, on käytettävä samaa asiakastunnistetta.
Jos jakamaton pysyvä tilaus samalla nimellä ja asiakastunnisteella on jo olemassa, ja sama aihe, viestivalitsin ja noLocal-arvo on jo määritelty, eikä yksikään kuluttaja ole aktiivinen (eli ei suljettu) pysyvässä tilauksessa, tämä menetelmä luo olemassa olevan kestävän tilauksen MessageConsumerille.
Jos ei-jaettu pysyvä tilaus, jolla on sama nimi ja asiakastunniste, on jo olemassa, ja pysyvällä tilauksella on käyttäjä, joka on jo aktiivinen (eli ei suljettu), JMSException käynnistetään.
Jos on jo olemassa ei-jaettu pysyvä tilaus, jolla on sama nimi ja asiakastunniste, mutta eri kohde, viestivalitsin tai noLocal-arvo on määritelty, eikä yksikään kuluttaja ole jo aktiivinen (eli ei suljettu) pysyvällä tilauksella, tämä vastaa vanhan tilauksen poistamista (poistamista) ja uuden luomista.
Jaetuilla ja ei-jaetuilla pysyvillä tilauksilla ei välttämättä ole sama nimi ja asiakas-identiteetti. Jos jaettu pysyvä tilaus, jolla on sama nimi ja asiakastunniste, on jo olemassa, JMSException käynnistetään.
Pysyville tilauksille ja jaetuille ei-pysyville tilauksille, joilla on sama nimi ja clientId, ei ole rajoitusta. Tällainen tilaus on täysin erillinen.
Tämä menetelmä on sama kuin vastaava createDurableSubscriber-menetelmä, paitsi että se palauttaa MessageConsumerin TopicSubscriberin sijaan edustamaan kuluttajaa.
Parametri: Teemat – Ei-väliaikaiset aihetilaukset nimi – Nimi, jolla tunnistetaan tämä tilaus Heitto: InvalidDestinationException – Jos virheellinen aihe on määritelty. IllegalStateException – Jos vierastunnistetta ei ole asetettu JMSException - Jos istunto epäonnistuu luomaan ei-jaettua pysyvää tilausta ja MessageConsumeria jonkin sisäisen virheen vuoksi Jos ei-jaettu pysyvä tilaus, jolla on sama nimi ja asiakastunniste, on jo olemassa, ja kuluttaja on jo aktiivinen Jos jaettu pysyvä tilaus samalla nimellä ja asiakastunnisteella on jo olemassa Siitä lähtien: JMS 2.0 IMessageConsumer CreateDurableConsumer(ITopic kohde, merkkijonon nimi, merkkijonojen valitsin, bool noLocal);
missä messageSelector on viestin valitsija; NoLocal-lippu on oletuksena väärin, ja kun se asetetaan tosi, se rajoittaa kuluttajia vastaanottamasta vain saman yhteyden kautta julkaistuja viestejä, mikä koskee vain aiheita, ei jonoja. nimi on tilausaiheen yksilöllinen identiteetti, ja tämä parametri täytyy asettaa, kun tilaat pysyvän tilauksen.
Activemq .net tarvitsee viitata paketin lataukseen:Hyperlinkin kirjautuminen on näkyvissä.
Koko lähdekoodin lataus:
Turistit, jos haluatte nähdä tämän postauksen piilotetun sisällön, olkaa hyvä Vastaus
|