Kuna projekt vajab mõningaid andmeid, et neid edastada ja vastu võtta, kuna andmete hulk on suhteliselt suur, umbes 3 miljonit andmeid päevas
Alguses kasutasin http posti andmete esitamiseks, kuid avastasin, et see oli liiga aeglane ja saatmiskiirus oli palju väiksem kui vastuvõtukiirus.
Seega, kui soovid kasutada pikka sokli ühendust andmete pushimiseks ja vastuvõtmiseks, kirjutada socket-server ja klient ise, see on aja raiskamine, kuid see ei pruugi hästi tehtud olla
Lõpuks kasutatakse activemq-d andmete lükkamiseks ja vastuvõtmiseks
Esiteks on tootjakood järgmine:
Tarbija, on kaks mudelit:
1: Tavaline tellimus, pole vaja püsivat "tellimust", see tähendab, et ühenduse loomisel saab sõnumeid vastu võtta, kuid sõnumeid ei saa enne ühendamist, kasutades "CreateConsumer" 2: Püsiv tellimus, pärast ühenduse loomist saad vastu võtta andmeid, mida varem pole surutud, kasutades "CreateDurableConsumer"
Lingid CreateDurableConsumeri tutvustusele:Hüperlingi sisselogimine on nähtav.
Loo antud teemal mittejagatud püsitellimus, kui see veel ei eksisteeri, ja loo sellele püsivale tellimusele tarbija. See meetod loob püsiva tellimuse ilma sõnumivalikut kasutamata ning noLocal väärtus on vale. Rakendus kasutab püsivat tellimust ning rakendus peab vastu võtma kõik sellel teemal avaldatud sõnumid, sealhulgas need, mis avaldatakse siis, kui aktiivseid kasutajaid ei ole. JMS-i teenusepakkuja hoiab selle püsiva tellimuse kohta arvestust ja tagab, et kõik kirjastaja sõnumid hoitakse alles kuni need on tarbijale jõudnud ja kinnitatud püsiva tellimusega kuni nende aegumiseni.
Püsivad tellimused koguvad sõnumeid seni, kuni need kustutatakse tellimuse tühistamise meetodiga.
Seda meetodit saab kasutada ainult mittejagatud püsivate tellimustega. Kõik selle meetodiga loodud püsivad tellimused ei jagata. See tähendab, et tellimusel võib korraga olla ainult üks aktiivne (st mitte suletud) tarbija. Mõiste "tarbija" tähistab siin TopicSubscriberi, MessageConsumeri või JMSConsumer objekti igas kliendis.
Mittejagatud püsivat tellimust tuvastatakse kliendi määratud nime ja kliendi identifikaatoriga, mis tuleb määrata. Rakendused, mis soovivad seejärel luua tarbijaid mittejagatud püsiva tellimuse alusel, peavad kasutama sama kliendi identifikaatorit.
Kui jagamata püsitellimus sama nime ja kliendi identifikaatoriga on juba olemas ning sama teema, sõnumi valik ja noLocal väärtus on juba määratud ning ükski tarbija pole püsival tellimusel aktiivne (st mitte suletud), loob see meetod MessageConsumeril olemasoleva püsiva tellimuse.
Kui mittejagatud püsitellimus sama nime ja kliendi identifikaatoriga on juba olemas ning püsiva tellimuse kasutaja on juba aktiivne (st mitte suletud), siis käivitatakse JMSException.
Kui on juba olemas mittejagatud püsitellimus sama nime ja kliendi identifikaatoriga, kuid erineva subjektiga, on määratud sõnumivalik või noLocal väärtus ning püsitellimusel pole enam aktiivne (st mitte suletud), siis on see võrdne vana tellimuse kustutamisega (kustutamisega) ja uue loomisega.
Jagatud ja mittejagatud püsivad tellimused ei pruugi omada sama nime ega kliendi identiteeti. Kui jagatud püsiv tellimus sama nime ja kliendi identifikaatoriga juba eksisteerib, käivitatakse JMSException.
Püsivatele tellimustele ja jagatud mittepüsivatele tellimustele sama nime ja clientID-ga pole piiranguid. Selline tellimus on täiesti eraldiseisev.
See meetod on sama mis vastav createDurableSubscriber meetod, välja arvatud see, et see tagastab tarbija esindamiseks MessageConsumeri, mitte TopicSubscriberi.
Parameeter: Teemad - Mitteajutised teemade tellimused nimi – Nimi, millega seda tellimust tuvastatakse Viske: InvalidDestinationException – Kui on määratud kehtetu teema. IllegalStateException – kui külalisidentifikaator ei ole määratud JMSException - Kui sessioon ei loo mittejagatud püsivat tellimust ja MessageConsumeri sisemise vea tõttu Kui mittejagatud püsitellimus sama nime ja kliendi identifikaatoriga on juba olemas ning tarbija on juba aktiivne Kui jagatud püsiv tellimus sama nime ja kliendi identifikaatoriga juba eksisteerib Alates: JMS 2.0 IMessageConsumer CreateDurableConsumer(ITopic sihtkoht, stringi nimi, stringi valija, bool noLocal);
kus messageSelector on sõnumi valija; NoLocal lipp on vaikimisi vale ning kui see on seatud tõele, piirab see tarbijaid saama sõnumeid ainult sama ühenduse kaudu, mis kehtib ainult teemadele, mitte järjekordadele. Nimi on tellimuse teema unikaalne identiteet ning see parameeter tuleb määrata, kui tellid püsiva tellimuse.
Activemq .net peab viitama paketi allalaadimisele:Hüperlingi sisselogimine on nähtav.
Täielik lähtekoodi allalaadimine:
Turistid, kui soovite näha selle postituse peidetud sisu, palun Vastuse
|