Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 304494|Atbildi: 72

[Avots] c# Ziņojumu rindas MessageQueue izmantošana ar avota kodu

  [Kopēt saiti]
Publicēts 14.12.2016 13:51:37 | | | |

Izmantojot MSMQ (Microsoft ziņojumu rinda), lietojumprogrammu izstrādātāji var ērti sazināties ar lietojumprogrammām ātri un uzticami, sūtot un saņemot ziņojumus. Ziņojumu apstrāde nodrošina uzticamu drošu metodi garantētai ziņojumapmaiņai un daudzu biznesa procesu veikšanai.

MSMQ, tāpat kā XML Web Services un .Net Remoting, ir izkliedēta izstrādes tehnoloģija. Tomēr, izmantojot XML Web Services vai .Net Remoting komponentus, klientam ir jāapmainās ar informāciju ar serveri reāllaikā, un serverim ir jāpaliek tiešsaistē. MSMQ var darboties, kad serveris ir bezsaistē, īslaicīgi saglabājot ziņojumu rindā klienta pusē un pēc tam nosūtot to uz serveri apstrādei, kad tas ir tiešsaistē.

Acīmredzot MSMQ nav piemērots situācijai, kad klientam ir savlaicīgi jāreaģē no servera, un MSMQ mijiedarbojas ar serveri asinhronā veidā, tāpēc nav jāuztraucas par to, ka serveris ilgstoši apstrādāsies.



Lai gan gan XML Web Services, gan .Net Remoting nodrošina rekvizītu [OneWay], lai apstrādātu asinhronus zvanus, tas tiek izmantots, lai atrisinātu problēmu ar gariem metodes zvaniem servera pusē, kas ilgstoši bloķē klienta pusi. Tomēr tas nevar atrisināt lielas klienta slodzes problēmu, un serveris pieņem pieprasījumus ātrāk, nekā tas var apstrādāt.

Parasti atribūts [OneWay] netiek izmantots specializētos ziņojumapmaiņas pakalpojumos.



1. Pamattermini un jēdzieni

"Ziņojums" ir datu vienība, kas tiek pārraidīta starp diviem datoriem. Ziņojumi var būt ļoti vienkārši, piemēram, satur tikai teksta virknes; Tas var būt arī sarežģītāks un saturēt iegultus objektus.



Ziņojumi tiek nosūtīti uz rindu. "Ziņojumu rinda" ir konteiners, kas glabā ziņojumus to pārraides laikā. Ziņojumu rindas pārvaldnieks darbojas kā starpnieks, pārsūtot ziņojumus no avota uz galamērķi. Rindas galvenais mērķis ir nodrošināt maršrutēšanu un garantēt ziņojumu piegādi; Ja ziņojuma nosūtīšanas brīdī adresāts nav pieejams, ziņojumu rindā ziņojums tiek turēts, līdz to var veiksmīgi piegādāt.



"Ziņojumu rinda" ir Microsoft ziņojumu apstrādes tehnoloģija, kas nodrošina ziņojumu apstrādes un ziņojumu rindas iespējas jebkurai lietojumprogrammai jebkurā datoru kombinācijā, kurā ir instalēta Microsoft Windows, neatkarīgi no tā, vai tie vienlaikus atrodas vienā tīklā vai tiešsaistē.



"Ziņojumu rindas tīkls" ir jebkura datoru grupa, kas var sūtīt ziņojumus viens otram uz priekšu un atpakaļ. Dažādiem tīkla datoriem ir atšķirīga loma, nodrošinot ziņojumu nevainojamu apstrādi. Daži no tiem sniedz maršrutēšanas informāciju, lai noteiktu, kā sūtīt ziņojumus, daži satur svarīgu informāciju par visu tīklu, un daži vienkārši sūta un saņem ziņojumus.



Ziņojumu rindas instalēšanas laikā administratori nosaka, kuri serveri var sazināties savā starpā, un nosaka īpašas lomas konkrētiem serveriem. Datorus, kas veido šo "ziņojumu rindu" tīklu, sauc par "vietnēm", un tie ir savstarpēji savienoti ar "vietnes saitēm". Katrai vietnes saitei ir saistītas pieskaitāmās izmaksas, ko nosaka administrators un kas norāda, cik bieži ziņojumi tiek piegādāti, izmantojot šo vietnes saiti.



Ziņojumu rindas administrators tīklā iestata arī vienu vai vairākus datorus, kas darbojas kā maršrutēšanas serveri. Maršrutēšanas serveris aplūko katras vietnes saites pieskaitāmās izmaksas, lai noteiktu ātrāko un efektīvāko veidu, kā piegādāt ziņojumu vairākās vietnēs, lai noteiktu, kā ziņojumu piegādāt.



2. Rindas veids

Ir divi galvenie rindu tipi: rindas, ko izveidojāt jūs vai citi tīkla lietotāji, un sistēmas rindas.

Lietotāja izveidotā rinda var būt jebkura no šādām:

Publiskās rindas tiek replicētas visā ziņojumu rindu tīklā, un tām var piekļūt visas tīklam pievienotās vietnes.

Privātās rindas netiek publicētas visā tīklā. Tā vietā tie ir pieejami tikai lokālajā datorā, kurā tie atrodas. Privātajām rindām var piekļūt tikai lietojumprogrammas, kas zina rindas pilnu ceļa nosaukumu vai etiķeti.

Pārvaldības rindā ir ziņojumi, kas apstiprina ziņojumu apliecinājumus, kas nosūtīti noteiktā ziņojumu rindas tīklā. Norādiet pārvaldības rindu, kuru vēlaties izmantot MessageQueue komponentam, ja tāds ir.

Atbilžu rindā ir atbilžu ziņojumi, kas tiek atgriezti sūtītājā lietojumprogrammā, kad mērķa lietojumprogramma saņem ziņojumu. Norādiet atbilžu rindu, kuru jāizmanto MessageQueue komponents, ja tāds ir.



Sistēmas ģenerētās rindas parasti iedala šādās kategorijās:

Žurnāla rinda pēc izvēles glabā nosūtīto ziņojumu kopijas un no rindas noņemto ziņojumu kopijas. Viena žurnāla rinda katrā ziņojumu rindas klientā glabā no šī datora nosūtīto ziņojumu kopijas. Katrai servera rindai tiek izveidota atsevišķa dienasgrāmatas rinda. Šis žurnāls izseko ziņojumus, kas tiek noņemti no šīs rindas.

Mirušo vēstuļu rindā tiek glabātas to ziņojumu kopijas, kurus nevar piegādāt vai kuriem ir beidzies derīguma termiņš. Ja ziņojums, kura derīguma termiņš beidzas vai kuru nevar piegādāt, ir transakcijas, tas tiek glabāts īpašā mirušo vēstuļu rindā, ko sauc par "transakciju mirušo vēstuļu rindu". Mirušie burti tiek glabāti datorā, kurā atrodas ziņojums, kuram beidzies derīguma termiņš. Papildinformāciju par taimauta un derīguma termiņa ziņojumiem skatiet sadaļā Noklusējuma ziņojuma rekvizīti.

Atskaišu rindā ir ziņojumi, kas norāda maršrutu, ko ziņojums veic, lai sasniegtu galamērķi, un var saturēt arī testa ziņojumus. Katrā datorā var būt tikai viena atskaišu rinda.

Īpaša sistēmas rinda ir virkne īpašu rindu, kurās tiek glabāti pārvaldības un paziņojumu ziņojumi, kas sistēmai nepieciešami, lai veiktu ziņojumu apstrādes operācijas.

Lielākā daļa lietojumprogrammā paveiktā darba ietver piekļuvi publiskajām rindām un to ziņojumiem. Tomēr, atkarībā no lietojumprogrammas žurnāla, apstiprinājuma un citām īpašām apstrādes vajadzībām, ir iespējams, ka ikdienas darbībās tiks izmantotas vairākas dažādas sistēmas rindas.



3. Sinhronā VS. Asinhronā komunikācija

Rindas saziņa pēc būtības ir asinhrona, jo ziņojumu sūtīšana uz rindu un ziņojumu saņemšana no tās tiek veikta dažādos procesos. Arī saņemšanas operāciju var veikt asinhroni, jo persona, kas vēlas saņemt ziņojumu, var izsaukt BeginReceive metodi uz jebkuru rindu un nekavējoties turpināt citus uzdevumus, negaidot atbildi. Tas ļoti atšķiras no tā, ko cilvēki pazīst kā "sinhronu komunikāciju".



Sinhronā saziņā pieprasījuma sūtītājam pirms citu uzdevumu veikšanas jāgaida atbilde no paredzētā saņēmēja. Sūtītāja gaidīšanas laiks ir pilnībā atkarīgs no laika, kas nepieciešams, lai saņēmējs apstrādātu pieprasījumu un nosūtītu atbildi.



4. Mijiedarbība ar ziņojumu rindām

Ziņojumu apstrāde un ziņojumapmaiņa nodrošina jaudīgu un elastīgu mehānismu starpprocesu saziņai starp servera lietojumprogrammu komponentiem. Tie piedāvā vairākas priekšrocības salīdzinājumā ar tiešu izsaukšanu starp komponentiem, tostarp:

Stabilitāte — komponentu kļūmes ietekmē ziņojumus daudz mazāk nekā tiešie zvani starp komponentiem, jo ziņojumi tiek glabāti rindā un paliek tur, līdz tie tiek pareizi apstrādāti. Ziņojumu apstrāde ir līdzīga darījumu apstrādei, jo ziņojumu apstrāde ir garantēta.
Ziņojumu prioritāšu noteikšana — steidzamākus vai svarīgākus ziņojumus var saņemt pirms salīdzinoši nesvarīgiem ziņojumiem, tādējādi varat garantēt atbilstošu atbildes laiku kritiskām lietojumprogrammām.
Bezsaistes iespējas — kad ziņojumi tiek nosūtīti, tos var nosūtīt uz pagaidu rindu un palikt tur, līdz tie tiek veiksmīgi piegādāti. Ja kāda iemesla dēļ piekļuve vēlamajai rindai nav pieejama, lietotājs var turpināt darbību. Tajā pašā laikā citas darbības var turpināties tā, it kā ziņojums būtu apstrādāts, jo ziņojuma piegāde tiek garantēta, atjaunojot tīkla savienojumu.
Transakciju ziņojumu apstrāde — savienojiet vairākus saistītus ziņojumus vienā transakcijā, lai nodrošinātu, ka ziņojumi tiek piegādāti secīgi, tikai vienu reizi, un tos var veiksmīgi izgūt no mērķa rindas. Ja ir kādas kļūdas, viss darījums tiek atcelts.
Drošība — ziņojumu rindas tehnoloģija, uz kuras pamata ir MessageQueue komponents, izmanto Windows drošību, lai aizsargātu piekļuves kontroli, nodrošinātu auditēšanu un šifrētu un autentificētu komponenta nosūtītos un saņemtos ziņojumus.


5. Uzrakstiet vienkāršu ziņojumu rindas programmu .Net vidē

(1) Vispirms instalējiet ziņojumu rindas pakalpojumus

Instalējiet MSMQ, izmantojot vadības paneli, soli "Pievienot / noņemt programmas" - "Pievienot / noņemt Windows komponentus".

MSMQ var instalēt darbgrupas režīmā vai domēna režīmā. Ja instalētājs neatrod serveri, kurā darbojas ziņojumu rinda, kas nodrošina direktoriju pakalpojumus, to var instalēt tikai darbgrupas režīmā, un ziņojumu rinda šajā datorā atbalsta tikai privātu rindu izveidi un tiešu savienojumu izveidi ar citiem datoriem, kuros darbojas ziņojumu rindas.



(2) Konfigurējiet MSMQ

Atveriet datora pārvaldību — ziņojumu rinda un izveidojiet MSMQDemo rindu sadaļā Privātās rindas


(3) Rakstīt kodu - vienkārši demonstrēt MSMQ objektu

Klase MessageQueue ir iesaiņojums ap "ziņojumu rindu". Klase MessageQueue nodrošina atsauci uz ziņojumu rindas rindu. Ziņojumu rindas konstruktorā var norādīt ceļu uz esošu resursu vai serverī izveidot jaunu rindu. Lai varētu izsaukt sūtīšanu, ieskatīšanu vai saņemšanu, jauna MessageQueue klases instance ir jāsaista ar esošu rindu.



MessageQueue atbalsta divu veidu ziņojumu izgūšanu: sinhronu un asinhronu. Sinhronizētās ieskatīšanās un saņemšanas metodes liek procesa pavedienam gaidīt, līdz rindā noteiktā intervālā pienāk jauns ziņojums. Asinhronās metodes BeginPeek un BeginReceive ļauj galvenajam lietojumprogrammas uzdevumam turpināt izpildi atsevišķā pavedienā, pirms ziņojums nonāk rindā. Šīs metodes darbojas, izmantojot atzvanīšanas objektus un stāvokļa objektus, lai atvieglotu informācijas saziņu starp pavedieniem.


Avota koda lejupielāde:

Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzuAtbildi





Iepriekšējo:15 labi. .NET
Nākamo:c#/.net nolasa torrent torrent jaucējinformācijas avota kodu
Publicēts 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
Publicēts 22.02.2019 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Publicēts 21.07.2021 11:20:26 |
Labi, labi
Publicēts 21.12.2016 23:04:53 |
Paldies, saimnieks
Publicēts 28.12.2016 19:20:26 |
Pārbaudiet šo pašreizējo, lai veiktu šo vingrinājumu
Publicēts 14.07.2017 16:32:06 |
Paldies, saimnieks。。。。。。。
Publicēts 18.10.2017 14:26:45 |
Mācieties no grupu vadītājiem
Publicēts 24.10.2017 05:39:19 |
Uzziniet to
Publicēts 18.11.2017 21:56:57 |
GOOOOOOOOOOOOOOOD
Publicēts 14.12.2017 14:04:20 |
Uz labām ziņām ir jāatbild
Publicēts 16.12.2017 21:49:55 |
213123saedwaeas
Publicēts 17.12.2017 08:56:11 |
Paskatieties, kas tiek teikts
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com