Ker projekt potrebuje nekaj podatkov, ki jih je treba poslati in prejeti, ker je količina podatkov razmeroma velika, približno 3 milijone podatkov na dan
Na začetku sem za oddajo podatkov uporabljal http post, a sem ugotovil, da je prepočasen, hitrost pošiljanja pa precej manjša od hitrosti prejemanja.
Zato, če želite uporabiti dolgo povezavo z vtičnico za pošiljanje in sprejem podatkov, napišite strežnik in odjemalca sami, je to izguba časa, vendar morda ni dobro izvedeno
Nazadnje se activemq uporablja za potiskanje in sprejem podatkov
Prvič, koda proizvajalca je naslednja:
Potrošnik, obstajata dva modela:
1: Običajna naročnina, ni potrebe po trajni "naročnini", torej ob povezavi lahko prejmete sporočila, sporočil pa ne morete prejeti pred povezavo, z uporabo "CreateConsumer" 2: Trajna naročnina, po povezavi lahko prejmete podatke, ki še niso bili potiskani, z uporabo "CreateDurableConsumer"
Povezave do uvedbe CreateDurableConsumer:Prijava do hiperpovezave je vidna.
Ustvarite trajno naročnino, ki ni deljena, na določeno temo, če ta še ne obstaja, in ustvarite potrošnika na tej trajni naročnini. Ta metoda ustvari trajno naročnino brez uporabe izbirnika sporočil, vrednost noLocal pa je napačna. Aplikacija uporablja trajno naročnino in mora prejemati vsa sporočila, objavljena na določeno temo, vključno z sporočili, ki so objavljena, kadar ni povezanih aktivnih uporabnikov. Ponudnik JMS vodi evidenco o tej trajni naročnini in zagotavlja, da bodo vsa sporočila od izdajatelja shranjena, dokler niso dostavljena potrošniku in potrjena s to trajno naročnino, dokler ne potečejo.
Vztrajne naročnine še naprej kopičijo sporočila, dokler niso izbrisana z uporabo metode odjave.
Ta metoda se lahko uporablja le z nedeljeno trajno naročnino. Vse trajne naročnine, ustvarjene s to metodo, bodo nedeljene. To pomeni, da lahko na naročnini hkrati obstaja le en aktiven (torej ne zaprt) potrošnik. Izraz "consumer" tukaj označuje objekt TopicSubscriber, MessageConsumer ali JMSConsumer v katerem koli odjemalcu.
Nedeljena trajna naročnina je identificirana z imenom, ki ga določi odjemalka, in identifikatorjem odjemalca, ki ga je treba nastaviti. Aplikacije, ki nato želijo ustvarjati potrošnike na nedeljeni trajni naročnini, morajo uporabljati isti identifikator odjemalca.
Če že obstaja nedeljena trajna naročnina z istim imenom in identifikatorjem odjemalca, ista tema, izbirnik sporočil in vrednost brez lokalnega je že določena, in noben uporabnik ni že aktiven (tj. ni zaprt) na trajni naročnini, ta metoda ustvari obstoječo trajno naročnino na MessageConsumer.
Če že obstaja nedeljena trajna naročnina z istim imenom in identifikatorjem odjemalca, in je na trajni naročnini že aktiven uporabnik (tj. ni zaprt), se sproži JMSException.
Če že obstaja trajna naročnina, ki ni deljena, z enakim imenom in identifikatorjem odjemalca, vendar z drugačnim subjektom, je določen izbirnik sporočil ali vrednost brez lokalnega programa, in noben potrošnik ni že aktiven (tj. ni zaprt) na trajni naročnini, je to enakovredno odjavi (brisanju) stare naročnine in ustvarjanju nove.
Deljene in nedeljene trajne naročnine morda nimajo istega imena in identitete odjemalca. Če že obstaja skupna trajna naročnina z istim imenom in identifikatorjem odjemalca, se sproži JMSException.
Ni omejitve za trajne naročnine in deljene netrajne naročnine z istim imenom in clientID-jem. Takšna naročnina bo popolnoma ločena.
Ta metoda je enaka ustrezni metodi createDurableSubscriber, le da namesto TopicSubscriber vrne MessageConsumer, ki predstavlja potrošnika.
Parameter: Teme - Ne-začasne naročnine na teme ime - Ime, ki se uporablja za identifikacijo te naročnine Met: InvalidDestinationException - Če je navedena neveljavna tema. IllegalStateException - Če identifikator gosta ni nastavljen JMSException - Če seja zaradi notranje napake ne ustvari trajne naročnine in MessageConsumer Če že obstaja nedeljena trajna naročnina z istim imenom in identifikatorjem odjemalca, potrošnik pa je že aktiven Če že obstaja skupna trajna naročnina z istim imenom in identifikatorjem odjemalca Ker: JMS 2.0 IMessageConsumer CreateDurableConsumer(ITopic destinacija, ime niza, izbirnik nizov, bool noLocal);
kjer je messageSelector izbirnik sporočila; Zastavica noLocal je privzeto napačna, in ko je nastavljena na resnično, omejuje potrošnike, da ne sprejemajo le sporočil, ki jih je objavila ista povezava kot oni sami, kar velja le za teme, ne za vrste. ime je edinstvena identiteta teme naročnine, ta parameter pa je treba nastaviti, ko se naročite na trajno naročnino.
Activemq .net potrebuje referenco za prenos paketa:Prijava do hiperpovezave je vidna.
Celoten prenos izvorne kode:
Turisti, če želite videti skrito vsebino te objave, prosim Odgovoriti
|