Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 304494|Svare: 72

[Kilde] c# Bruken av meldingskøen MessageQueue med kildekode

  [Kopier lenke]
Publisert på 14.12.2016 13:51:37 | | | |

Med MSMQ (Microsoft Message Queue) kan applikasjonsutviklere enkelt kommunisere med applikasjoner raskt og pålitelig ved å sende og motta meldinger. Meldingsbehandling gir deg en pålitelig og sikker metode for garantert meldingsutveksling og for å utføre mange forretningsprosesser.

MSMQ, som XML Web Services og .Net Remote, er en distribuert utviklingsteknologi. Men når man bruker XML Web Services eller .Net Remote-komponenter, må klienten utveksle informasjon med serveren i sanntid, og serveren må forbli online. MSMQ kan fungere når serveren er offline, og midlertidig lagre meldingen i meldingskøen på klientsiden, og deretter sende den til serveren for behandling når den er online.

Det er åpenbart at MSMQ ikke er egnet for situasjoner der klienten må svare raskt fra serveren, og MSMQ interagerer asynkront med serveren, så det er ikke nødvendig å bekymre seg for å vente lenge på at serveren skal behandle den.



Selv om både XML Web Services og .Net Remoting tilbyr [OneWay]-egenskapen for å håndtere asynkrone kall, brukes den til å løse problemet med lange metodekall på serversiden som blokkerer klientsiden over lang tid. Den kan imidlertid ikke løse problemet med stor klientbelastning, og serveren aksepterer forespørsler raskere enn den kan behandle.

Generelt brukes ikke attributtet [OneWay] i spesialiserte meldingstjenester.



1. Grunnleggende begreper og konsepter

En "melding" er en dataenhet som overføres mellom to datamaskiner. Meldinger kan være svært enkle, som å kun inneholde tekststrenger; Den kan også være mer kompleks og kan inneholde innebygde objekter.



Meldinger sendes til køen. En «meldingskø» er en beholder som holder meldinger under overføringen. Meldingskø-manageren fungerer som en mellommann når meldinger videresendes fra kilden til destinasjonen. Hovedformålet med en kø er å tilby ruting og garantere levering av meldinger; Hvis mottakeren ikke er tilgjengelig når meldingen sendes, holder meldingskøen meldingen til den kan leveres med suksess.



"Message Queuing" er Microsofts meldingsbehandlingsteknologi som gir meldingsbehandling og meldingskø-funksjonalitet for enhver applikasjon i hvilken som helst kombinasjon av datamaskiner med Microsoft Windows installert, uavhengig av om de er på samme nettverk eller online samtidig.



Et "meldingskønettverk" er en hvilken som helst gruppe datamaskiner som kan sende meldinger frem og tilbake til hverandre. Ulike datamaskiner i et nettverk spiller ulike roller for å sikre at meldinger behandles smidig. Noen av dem gir ruteinformasjon for å avgjøre hvordan meldinger skal sendes, noen inneholder viktig informasjon om hele nettverket, og noen sender og mottar bare meldinger.



Under installasjonen av Message Queue bestemmer administratorene hvilke servere som kan kommunisere med hverandre og setter spesielle roller for spesifikke servere. Datamaskinene som utgjør dette nettverket av «meldingskøer» kalles «nettsteder», og de er koblet til hverandre via «nettstedslenker». Hver sitelink har en tilknyttet "overhead" som bestemmes av administratoren og angir hvor ofte meldinger leveres gjennom denne sitelinken.



Administrator for meldingskøen setter også opp en eller flere datamaskiner i nettverket som fungerer som rutingsservere. Routingserveren ser på overheaden til hver sitelink for å finne den raskeste og mest effektive måten å levere en melding gjennom flere nettsteder for å finne ut hvordan meldingen skal leveres.



2. Køtype

Det finnes to hovedtyper køer: køer opprettet av deg eller andre brukere i nettverket ditt, og systemkøer.

En brukeropprettet kø kan være en av følgende:

Offentlige køer replikeres over hele Message Queue-nettverket og har potensial til å bli aksessert av alle steder som er koblet til nettverket.

Private køer publiseres ikke over hele nettverket. I stedet er de kun tilgjengelige på den lokale datamaskinen der de befinner seg. Private køer kan kun nås av applikasjoner som kjenner hele stinavnet eller etiketten til køen.

Management Queue inneholder meldinger som bekrefter meldingsmottak sendt i et gitt Message Queue-nettverk. Spesifiser hvilken administrasjonskø du ønsker at MessageQueue-komponenten skal bruke, hvis det er noen.

Responskøen inneholder svarmeldingene som returneres til den sendende applikasjonen når målapplikasjonen mottar meldingen. Spesifiser hvilken responskø du ønsker at MessageQueue-komponenten skal bruke, hvis det er noen.



Køene som genereres av systemet deles vanligvis inn i følgende kategorier:

Journal Queue lagrer valgfritt kopier av sendte meldinger og kopier av meldinger fjernet fra køen. En enkelt journalkø på hver Message Queue-klient lagrer en kopi av meldinger sendt fra den datamaskinen. En egen dagbokkø opprettes for hver kø på serveren. Denne journalen sporer meldinger som fjernes fra den køen.

Dead Letter Queue lagrer kopier av meldinger som ikke kan leveres eller som har utløpt. Hvis en melding som utløper eller ikke kan leveres er transaksjonell, lagres den i en spesiell død bokstav-kø kalt en "transaksjonell død bokstav-kø". Døde bokstaver lagres på datamaskinen der den utgåtte meldingen ligger. For mer informasjon om timeout- og utløpsmeldinger, se Egenskaper for standardmeldinger.

Rapportkøen inneholder meldinger som indikerer ruten meldingen tar for å nå destinasjonen, og kan også inneholde testmeldinger. Det kan bare være én rapporteringskø på hver datamaskin.

En dedikert systemkø er en serie dedikerte køer som lagrer administrasjons- og varslingsmeldinger som et system trenger for å utføre meldingsbehandlingsoperasjoner.

Det meste av arbeidet i applikasjonen innebærer tilgang til offentlige køer og deres meldinger. Avhengig av applikasjonens journalføring, bekreftelse og andre spesielle behandlingsbehov, er det sannsynlig at flere forskjellige systemkøer vil bli brukt i daglig drift.



3. Synkron VS. Asynkron kommunikasjon

Køkommunikasjon er iboende asynkron fordi sending av meldinger til og mottak av meldinger fra køen skjer i forskjellige prosesser. Mottaksoperasjonen kan også utføres asynkront, fordi personen som ønsker å motta meldingen kan kalle BeginReceived-metoden til en gitt kø og umiddelbart fortsette med andre oppgaver uten å vente på svar. Dette er veldig annerledes enn det folk kjenner som «synkron kommunikasjon».



I synkron kommunikasjon må avsenderen av forespørselen vente på svar fra den tiltenkte mottakeren før han kan utføre andre oppgaver. Hvor lang tid avsenderen venter, avhenger helt av hvor lang tid mottakeren tar å behandle forespørselen og sende svaret.



4. Samhandling med meldingskøer

Meldingsbehandling og meldingsutveksling gir en kraftig og fleksibel mekanisme for interprosesskommunikasjon mellom serverbaserte applikasjonskomponenter. De tilbyr flere fordeler sammenlignet med direkte påkalling mellom komponenter, inkludert:

Stabilitet – Komponentfeil påvirker meldinger mye mindre enn direkte samtaler mellom komponenter, ettersom meldinger lagres i en kø og forblir der til de er riktig behandlet. Meldingsbehandling ligner på transaksjonsbehandling ved at meldingsbehandling er garantert.
Meldingsprioritering – Mer presserende eller viktige meldinger kan mottas før relativt uviktige meldinger, slik at du kan garantere tilstrekkelig responstid for kritiske applikasjoner.
Offline-funksjonalitet – Når meldinger sendes, kan de sendes til en midlertidig kø og forbli der til de er levert. Når tilgang til ønsket kø ikke er tilgjengelig av en eller annen grunn, kan brukeren fortsette med handlingen. Samtidig kan andre operasjoner fortsette som om meldingen var behandlet, fordi meldingslevering er garantert når nettverkstilkoblingen gjenopprettes.
Transaksjonell meldingsbehandling – Koble flere relaterte meldinger til én transaksjon for å sikre at meldinger leveres sekvensielt, kun én gang, og kan hentes vellykket fra destinasjonskøen. Hvis det oppstår feil, kanselleres hele transaksjonen.
Sikkerhet – Meldingskø-teknologien som MessageQueue-komponenten er basert på, bruker Windows Security for å sikre tilgangskontroll, tilby revisjon, samt kryptere og autentisere meldinger sendt og mottatt av komponenten.


5. Skriv et enkelt meldingskøprogram i .Net-miljøet

(1) Installer meldingskøtjenester først

Installer MSMQ via Kontrollpanelet, steget «Legg til/Fjern programmer» – «Legg til/fjern Windows-komponenter».

MSMQ kan installeres enten i arbeidsgruppemodus eller domenemodus. Hvis installasjonsprogrammet ikke finner en server som kjører en meldingskø som tilbyr katalogtjenester, kan den kun installeres i arbeidsgruppemodus, og meldingskøen på denne datamaskinen støtter kun opprettelse av private køer og opprettelse av direkte tilkoblinger til andre datamaskiner som kjører meldingskøer.



(2) Konfigurer MSMQ

Åpne datastyring – Meldingskø og opprett en MSMQDemo-kø under Private køer


(3) Skriv kode – demonstrer enkelt MSMQ-objektet

MessageQueue-klassen er en wrapper rundt en "meldingskø". MessageQueue-klassen gir en referanse til Message Queue-køen. Du kan spesifisere en sti til en eksisterende ressurs i MessageQueue-konstruktøren, eller du kan opprette en ny kø på serveren. Før du kan kalle Send, Peek eller Resept, må du knytte en ny instans av MessageQueue-klassen til en eksisterende kø.



MessageQueue støtter to typer meldingshenting: synkron og asynkron. De synkroniserte Peek- og Mottake-metodene får prosesstråden til å vente på at en ny melding skal ankomme køen med et spesifisert intervall. De asynkrone metodene BeginPeek og BeginReceive lar hovedapplikasjonsoppgaven fortsette å kjøre i en separat tråd før meldingen når køen. Disse metodene fungerer ved å bruke callback-objekter og tilstandsobjekter for å lette informasjonskommunikasjon mellom tråder.


Nedlasting av kildekode:

Turister, hvis dere vil se det skjulte innholdet i dette innlegget, vær så snillSvare





Foregående:15 bra. .NET
Neste:c#/.net leser kildekoden til hash-informasjonen til torrenttorrenten
Publisert på 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
Publisert på 22.02.2019 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Publisert på 21.07.2021 11:20:26 |
Bra, bra
Publisert på 21.12.2016 23:04:53 |
Takk, utleier
Publisert på 28.12.2016 19:20:26 |
Sjekk ut denne nåværende for å gjøre denne øvelsen
Publisert på 14.07.2017 16:32:06 |
Takk, utleier。。。。。。。
Publisert på 18.10.2017 14:26:45 |
Lær av gruppelederne
Publisert på 24.10.2017 05:39:19 |
Lær det
Publisert på 18.11.2017 21:56:57 |
GOOOOOOOOOOOOOD
Publisert på 14.12.2017 14:04:20 |
Gode innlegg må besvares
Publisert på 16.12.2017 21:49:55 |
213123saedwaeas
Publisert på 17.12.2017 08:56:11 |
Se på hva som blir sagt
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com