See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 304494|Vastuse: 72

[Allikas] c# Sõnumijärjekorra MessageQueue kasutamine lähtekoodiga

  [Kopeeri link]
Postitatud 14.12.2016 13:51:37 | | | |

MSMQ (Microsoft Message Queue) abil saavad rakenduste arendajad mugavalt kiiresti ja usaldusväärselt suhelda rakendustega, saates ja vastu võttes sõnumeid. Sõnumite töötlemine pakub usaldusväärset veakindluse meetodit garanteeritud sõnumite saatmiseks ja paljude äriprotsesside täitmiseks.

MSMQ, nagu XML Web Services ja .Net Remoting, on hajutatud arendustehnoloogia. Kuid XML veebiteenuste või .Net kaugjuhtimise komponentide kasutamisel peab klient serveriga reaalajas infot vahetama ning server peab jääma võrguühendusse. MSMQ töötab ka siis, kui server on võrguühenduseta, salvestades sõnumi ajutiselt kliendi poole sõnumijärjekorda ja saates selle serverile töötlemiseks, kui see on võrgus.

Ilmselgelt ei sobi MSMQ olukorda, kus klient peab serverilt õigeaegselt vastama ja MSMQ suhtleb serveriga asünkroonselt, seega pole vaja kaua oodata, kuni server töötleb.



Kuigi nii XML Web Services kui ka .Net Remoting pakuvad [OneWay] omadust asünkroonsete kõnede haldamiseks, kasutatakse seda probleemi lahendamiseks, kus serveri poolel on pikad meetodikutsed, mis blokeerivad kliendi poole pikalt ära. Kuid see ei suuda lahendada suure kliendikoormuse probleemi ning server võtab päringuid vastu kiiremini, kui suudab töödelda.

Üldiselt ei kasutata [OneWay] atribuuti spetsialiseeritud sõnumiteenustes.



1. Põhimõisted ja mõisted

"Sõnum" on andmeühik, mis edastatakse kahe arvuti vahel. Sõnumid võivad olla väga lihtsad, näiteks sisaldades ainult tekstistringe; See võib olla ka keerukam ja sisaldada manustatud objekte.



Sõnumid saadetakse järjekorda. "Sõnumijärjekord" on konteiner, mis hoiab sõnumeid nende edastamise ajal. Sõnumijärjekorra haldur toimib vahendajana, kui edastab sõnumeid allikast sihtkohta. Järjekorra peamine eesmärk on tagada marsruutimine ja tagada sõnumite kohaletoimetamine; Kui saaja pole sõnumi saatmise ajal saadaval, hoiab sõnumijärjekord sõnumi kuni selle eduka kohale toimetamiseni.



"Sõnumijärjekord" on Microsofti sõnumitöötlustehnoloogia, mis pakub sõnumitöötluse ja järjekorra võimalusi igale rakendusele mis tahes arvutikombinatsioonis, kus on Microsoft Windows, olenemata sellest, kas nad on samal võrgul või samal ajal võrgus.



"Sõnumijärjekorra võrk" on igasugune arvutite grupp, mis suudab omavahel sõnumeid edasi-tagasi saata. Erinevad arvutid võrgus täidavad erinevaid rolle sõnumite sujuva töötlemise tagamisel. Mõned neist pakuvad marsruutimisinfot, et määrata, kuidas sõnumeid saata, mõned hoiavad olulist infot kogu võrgu kohta ja mõned lihtsalt saadavad ja vastu võtavad.



Sõnumijärjekorra paigaldamisel määravad administraatorid, millised serverid saavad omavahel suhelda ja määravad konkreetsetele serveritele erirollid. Arvutid, mis moodustavad selle "sõnumijärjekordade" võrgustiku, nimetatakse "saitideks" ning need on omavahel ühendatud "saidi linkidega". Igal saidilindil on seotud "üldkoormus", mille määrab administraator ja mis näitab, kui tihti sõnumeid selle lingi kaudu kohale toimetatakse.



Sõnumijärjekorra administraator seadistab võrgus ka ühe või mitu arvutit, mis toimivad marsruutimisserveritena. Marsruutimisserver vaatab iga saidilingi üldkulusid, et määrata kiireim ja tõhusaim viis sõnumi edastamiseks mitme saidi kaudu ning määrata, kuidas sõnum edastada.



2. Järjekorra tüüp

On kaks peamist järjekorratüüpi: järjekorrad, mille loote teie või teiste kasutajate poolt teie võrgus, ja süsteemijärjekorrad.

Kasutaja loodud järjekord võib olla ükskõik milline järgmistest:

Avalikud järjekorrad on replitseeritud kogu Message Queue võrgus ning neid on võimalik kasutada kõigile võrguga ühendatud saitidele.

Privaatseid järjekordi ei avaldata kogu võrgus. Selle asemel on need saadaval ainult kohalikus arvutis, kus nad asuvad. Privaatsetele järjekordadele pääsevad ligi ainult rakendused, mis teavad järjekorra täisnime või silti.

Haldusjärjekord sisaldab sõnumeid, mis kinnitavad antud sõnumijärjekorra võrgus saadetud sõnumite vastuvõtte. Määra haldusjärjekorra, mida soovid MessageQueue komponendile kasutada, kui see üldse on.

Vastusjärjekord sisaldab vastusesõnumeid, mis tagastatakse saatvale rakendusele, kui sihtrakendus sõnumi kätte saab. Määra vastusejärjekord, mida soovid MessageQueue komponendile kasutada, kui see üldse on.



Süsteemi genereeritud järjekorrad jagunevad üldiselt järgmistesse kategooriatesse:

Päevikujärjekord salvestab vabatahtlikult saadetud sõnumite koopiad ja järjekorrast eemaldatud sõnumite koopiad. Iga sõnumijärjekorra kliendi üks päevikujärjekord salvestab koopia sellest arvutist saadetud sõnumitest. Iga serveri järjekorra jaoks luuakse eraldi päevikujärjekord. See päevik jälgib sõnumeid, mis on sellest järjekorrast eemaldatud.

Dead Letter Queue salvestab koopiaid sõnumitest, mida ei saa kohale toimetada või mis on aegunud. Kui sõnum, mis aegub või mida ei saa kohale toimetada, on tehinguline, salvestatakse see spetsiaalsesse surnud kirja järjekorda, mida nimetatakse "tehingulise surnud kirja järjekorraks". Surnud kirjad salvestatakse arvutisse, kus aegunud sõnum asub. Lisateabe saamiseks ajapiirangute ja aegumissõnumite kohta vaata Vaikimisi sõnumi omadused.

Raportijärjekord sisaldab sõnumeid, mis näitavad, millist marsruuti sõnum sihtkohta liigub, ning võib sisaldada ka testteateid. Igas arvutis võib olla ainult üks aruandlusjärjekord.

Pühendatud süsteemijärjekord on pühendatud järjekorrade jada, mis salvestab haldus- ja teavitussõnumeid, mida süsteem vajab sõnumite töötlemise toimingute läbiviimiseks.

Enamik rakenduses tehtud tööst hõlmab avalike järjekordade ja nende sõnumite ligipääsu. Kuid sõltuvalt rakenduse päevikust, kinnitusest ja muudest erivajadustest on tõenäoline, et igapäevastes toimingutes kasutatakse mitut erinevat süsteemijärjekorda.



3. Sünkroonne VS. Asünkroonne suhtlus

Järjekorra suhtlus on olemuslikult asünkroonne, sest sõnumite saatmine ja vastuvõtmine järjekorda toimub erinevates protsessides. Samuti saab vastuvõtuoperatsiooni teha asünkroonselt, sest isik, kes soovib sõnumit vastu võtta, saab kutsuda BeginReceive meetodi ükskõik millisesse järjekorda ja jätkata kohe teiste ülesannetega ilma vastust ootamata. See erineb väga sellest, mida inimesed nimetavad "sünkroonseks suhtluseks".



Sünkroonses suhtluses peab päringu saatja ootama vastuvõtja vastust enne teiste ülesannete täitmist. Saatja ooteaeg sõltub täielikult sellest, kui kaua võtab vastuvõtja taotluse töötlemiseks ja vastuse saatmiseks.



4. Suhtlus sõnumijärjekordadega

Sõnumitöötlus ja sõnumite saatmine pakuvad võimsat ja paindlikku mehhanismi protsessidevaheliseks suhtluseks serveripõhiste rakenduskomponentide vahel. Neil on mitmeid eeliseid otsese kutsumise ees komponentide vahel, sealhulgas:

Stabiilsus – Komponentide rikked mõjutavad sõnumeid palju vähem kui otsesed kõned komponentide vahel, kuna sõnumid salvestatakse järjekorda ja jäävad sinna kuni neid korralikult töödeldakse. Sõnumite töötlemine on sarnane tehingute töötlemisele, kuna sõnumite töötlemine on garanteeritud.
Sõnumite prioriseerimine – kiireloomulisemaid või olulisemaid sõnumeid saab vastu võtta enne suhteliselt ebaolulisi sõnumeid, nii et saate tagada piisava reageerimisaja kriitilistele rakendustele.
Võrguühenduseta võimekus – Kui sõnumeid saadetakse, saab need saata ajutisse järjekorda ja jääda sinna kuni eduka kohaletoimetamiseni. Kui soovitud järjekorra ligipääs mingil põhjusel ei ole saadaval, saab kasutaja tegevusega edasi minna. Samal ajal võivad teised operatsioonid jätkuda nii, nagu sõnum oleks töödeldud, sest sõnumi edastamine on garanteeritud, kui võrguühendus taastatakse.
Tehinguline sõnumitöötlus – Ühenda mitu seotud sõnumit üheks tehinguks, et tagada, et sõnumid toimetatakse järjestikku, ainult üks kord, ja neid saab edukalt sihtjärjekorrast kätte saada. Kui esineb vigu, tühistatakse kogu tehing.
Turvalisus – Sõnumite järjekorra tehnoloogia, millele MessageQueue komponent tugineb, kasutab Windows Security süsteemi, et turvata juurdepääsu kontrolli, pakkuda auditeerimist ning krüpteerida ja autentida komponenti poolt saadetud ja vastu võetud sõnumeid.


5. Kirjuta lihtne sõnumijärjekorra programm .Net keskkonnas

(1) Paigalda esmalt sõnumite järjekorra teenused

Paigalda MSMQ juhtpaneeli kaudu, "Lisa/Eemalda programmid" – "Lisa/Eemalda Windowsi komponendid".

MSMQ-d saab paigaldada kas töögrupi režiimis või domeenirežiimis. Kui paigaldaja ei leia serverit, mis jooksutaks sõnumijärjekorda, mis pakuks kataloogiteenuseid, saab selle paigaldada ainult töögrupi režiimis ning selle arvuti sõnumijärjekord toetab ainult privaatsete järjekordade loomist ja otseste ühenduste loomist teiste arvutitega, kus Sõnumijärjekorrad töötavad.



(2) Seadista MSMQ

Ava arvutihaldus – sõnumijärjekord ja loo MSMQDemo järjekord privaatsete järjekordade all


(3) Koodi kirjutamine – lihtsalt MSMQ objekti demonstreerimine

MessageQueue klass on ümbris, mis ümbritseb "sõnumijärjekorda". MessageQueue klass annab viite Message Queue järjekorrale. Saad määrata tee olemasolevale ressursile MessageQueue konstruktoris või luua serveris uue järjekorra. Enne kui saad kutsuda Send, Peek või Receive, pead seostama uue MessageQueue klassi eksemplari olemasoleva järjekorraga.



MessageQueue toetab kahte tüüpi sõnumite otsingut: sünkroonset ja asünkroonset. Sünkroniseeritud Peek ja Receive meetodid panevad protsessilõime ootama, kuni uus sõnum jõuab järjekorda kindlaksmääratud intervalliga. Asünkroonsed BeginPeek ja BeginReceive meetodid võimaldavad põhirakenduse ülesandel jätkata täitmist eraldi lõimes enne, kui sõnum jõuab järjekorda. Need meetodid töötavad, kasutades tagasikutsumise objekte ja olekuobjekte, et hõlbustada infokommunikatsiooni lõimede vahel.


Lähtekoodi allalaadimine:

Turistid, kui soovite näha selle postituse peidetud sisu, palunVastuse





Eelmine:15 hea. .NET
Järgmine:c#/.net loeb torrenttorrenti räsi lähtekoodi
Postitatud 13.06.2021 20:54:46 |
OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK
Postitatud 22.02.2019 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Postitatud 21.07.2021 11:20:26 |
Hea, hea
Postitatud 21.12.2016 23:04:53 |
Aitäh, üürileandja
Postitatud 28.12.2016 19:20:26 |
Vaata seda praegust harjutust selle harjutuse tegemiseks
Postitatud 14.07.2017 16:32:06 |
Aitäh, üürileandja。。。。。。。
Postitatud 18.10.2017 14:26:45 |
Õpi grupijuhtidelt
Postitatud 24.10.2017 05:39:19 |
Õpi seda
Postitatud 18.11.2017 21:56:57 |
GOOOOOOOOOOOA
Postitatud 14.12.2017 14:04:20 |
Headele postitustele tuleb vastata
Postitatud 16.12.2017 21:49:55 |
213123saedwaeas
Postitatud 17.12.2017 08:56:11 |
Vaata, mida öeldakse
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com