Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 304494|Válasz: 72

[Forrás] c# A MessageQueue üzenetsorban a forráskóddal való használata

  [Linket másol]
Közzétéve 2016. 12. 14. 13:51:37 | | | |

Az MSMQ (Microsoft Message Queue) segítségével az alkalmazásfejlesztők kényelmesen és gyorsan kommunikálhatnak az alkalmazásokkal, üzenetek küldésével és fogadásával. Az üzenetfeldolgozás megbízható, biztonsági módszert biztosít garantált üzenetküldésre és számos üzleti folyamat végrehajtására.

Az MSMQ, akárcsak az XML Web Services és a .Net Remoting, egy elosztott fejlesztési technológia. Azonban XML Web Services vagy .Net Remoting komponensek használata esetén a kliensnek valós időben kell információt cserélnie a szerverrel, és a szervernek online kell maradnia. Az MSMQ működhet, amikor a szerver offline van, ideiglenesen elmenti az üzenetet az ügyféloldali üzenetsorban, majd online állapotban elküldi a szervernek feldolgozásra.

Nyilvánvalóan az MSMQ nem alkalmas arra a helyzetre, amikor az ügyfélnek időben kell reagálnia a szervertől, és az MSMQ aszinkron módon lép kapcsolatba a szerverrel, így nem kell aggódni, hogy hosszú ideig várjon a szerver feldolgozására.



Bár mind az XML Web Services, mind a .Net Remoting biztosítja a [OneWay] tulajdonságot az aszinkron hívások kezelésére, ezt azért használják arra, hogy megoldják a szerver oldali hosszú metódushívások problémáját, amelyek hosszú ideig blokkolják a kliens oldalt. Ugyanakkor nem tudja megoldani a nagy ügyfélterhelés problémáját, és a szerver gyorsabban fogadja el a kéréseket, mint ahogy feldolgozná.

Általánosságban a [OneWay] attribútumot nem használják speciális üzenetküldő szolgáltatásokban.



1. Alapvető fogalmak és fogalmak

Az "üzenet" egy adategység, amelyet két számítógép között továbbítanak. Az üzenetek lehetnek nagyon egyszerűek, például csak szöveges sorokat tartalmazhatnak; Lehet összetettebb is, és tartalmazhat beágyazott objektumokat.



Az üzenetek a sorba kerülnek. Az "üzenetsor" egy olyan konténer, amely üzeneteket tárol az üzenetek továbbítása során. Az üzenetsorkezelő közvetítőként működik, amikor üzeneteket továbbít a forrásból a célállomásra. A sor fő célja az útvonaltervezés biztosítása és az üzenetek kézbesítésének garantálása; Ha a címző nem elérhető az üzenet küldésekor, az üzenetsorban az üzenet addig tartja az üzenetet, amíg sikeresen el nem kézbesítik.



Az "Üzenetsor" a Microsoft üzenetfeldolgozó technológiája, amely bármilyen alkalmazás számára biztosít üzenetfeldolgozási és üzenetsorozási képességeket bármely Microsoft Windows telepített számítógép kombinációján, függetlenül attól, hogy ugyanazon a hálózaton vagy online egyszerre vannak-e.



Az "üzenetsor-hálózat" bármely számítógép-csoport, amely üzeneteket küldhet egymásnak. A hálózatban lévő különböző számítógépek eltérő szerepet töltenek be abban, hogy az üzenetek zökkenőmentesen dolgozzanak fel. Néhányuk útválasztási információkat biztosít az üzenetküldés meghatározásához, mások fontos információkat tartalmaznak az egész hálózatról, mások pedig egyszerűen küldenek és fogadnak üzeneteket.



Az Üzenetsor-telepítés során az adminisztrátorok meghatározzák, mely szerverek kommunikálhatnak egymással, és speciális szerepeket állítanak be az adott szerverek számára. A "üzenetsorok" hálózatát alkotó számítógépeket "oldalaknak" nevezik, és "oldali linkek" kapcsolódnak egymáshoz. Minden oldallinknek van egy hozzá tartozó "overload", amelyet az adminisztrátor határoz meg, és amely jelzi, hogy milyen gyakran jutnak üzenetek ezen a weboldali linken keresztül.



Az Üzenetsor-adminisztrátor egy vagy több számítógépet is beállít a hálózatban, amelyek Router szerverként működnek. Az útválasztási szerver minden oldali link túlterhelését vizsgálja, hogy meghatározza, mi a leggyorsabb és leghatékonyabb módja annak, hogyan juttassa el az üzenetet több oldalon keresztül, hogy eldöntse, hogyan kell továbbítani az üzenetet.



2. Sortípus

Két fő sortípus létezik: a te vagy más felhasználók által létrehozott sorok a hálózatodban, valamint a rendszersorok.

A felhasználó által létrehozott sor lehet bármelyik az alábbiakból:

A nyilvános sorok az egész Üzenetsor-hálózaton replikálódnak, és minden hálózathoz csatlakozó helyszín hozzáférhet.

A privát sorok nem jelennek meg a hálózaton keresztül. Ehelyett csak a helyi számítógépen érhetők el, ahol laknak. A privát sorokhoz csak azok az alkalmazások férnek hozzá, amelyek ismerik a sor teljes útnevét vagy címkéjét.

A Menedzsment Sor olyan üzeneteket tartalmaz, amelyek visszaigazolják az adott üzenetsor-hálózatban küldött üzenetfogadásokat. Határozd meg, melyik menedzsment sort a MessageQueue komponensnek van használni, ha van.

A Válaszsor tartalmazza azokat a válaszüzeneteket, amelyeket a küldő alkalmazásnak küldenek, amikor a célalkalmazás megkapja az üzenetet. Határozd meg, melyik válaszsorba szeretnéd használni a MessageQueue komponensnek, ha van.



A rendszer által generált sorok általában a következő kategóriákba sorolhatók:

A Journal Queue opcionálisan tárolja az elküldött üzenetek és a sorból eltávolított üzenetek másolatait. Minden Üzenetsor-kliensen egyetlen napló sorban tárolja az adott számítógépről küldött üzenetek másolatát. Minden szerver sorához külön napló sort hoznak létre. Ez a napló követi azokat az üzeneteket, amelyek eltávolítottak a sorból.

A Dead Letter Queue olyan üzenetmásolatokat tárol, amelyeket nem lehet kézbesíteni vagy lejártak. Ha egy lejárt vagy kézbesíthetetlen üzenet tranzakciós, akkor egy speciális dead-letter sorban tárolják, amit "tranzakciós dead-letter" néven hívnak. A halott levelek azon a számítógépen vannak tárolva, ahol a lejárt üzenet található. További információért az időtúllépésről és lejárati üzenetekről lásd: Alapértelmezett üzenet tulajdonságok.

A Jelentési Sor olyan üzeneteket tartalmaz, amelyek jelzik, hogy az üzenet milyen útvonalon jut el a célhoz, és tartalmazhat tesztüzeneteket is. Minden számítógépen csak egy jelentési sor lehet.

A dedikált rendszersor egy sor dedikált sor, amely tárolja azokat a menedzsment és értesítési üzeneteket, amelyekre a rendszer szüksége van az üzenetfeldolgozó műveletek végrehajtásához.

Az alkalmazásban végzett munka nagy része a nyilvános sorokhoz és azok üzeneteihez való hozzáféréssel áll meg. Azonban az alkalmazás naplóztatása, hitelesítése és egyéb speciális feldolgozási igényei függvényében valószínű, hogy több különböző rendszersort fognak használni a napi műveletekben.



3. Szinkron VS. Aszinkron kommunikáció

A sorral való kommunikáció eleve aszinkron, mert az üzenetküldés és a sorba való üzenetek fogadása különböző folyamatokban történik. Emellett a vételi művelet aszinkron módon is elvégezhető, mivel az üzenetet fogadó személy bármelyik sorba hívhatja a BeginReceive metódust, és azonnal folytathatja más feladatokat válasz várakodása nélkül. Ez nagyon különbözik attól, amit az emberek "szinkron kommunikációnak" neveznek.



Szinkron kommunikációban a kérés küldőjének várnia kell a kívánt vevő válaszára, mielőtt más feladatokat végezne. A feladó várakozási ideje teljes mértékben attól függ, mennyi időbe telik a fogadó feldolgozása és a válasz elküldése.



4. Az üzenetsorokkal való interakció

Az üzenetfeldolgozás és az üzenetküldés hatékony és rugalmas mechanizmust biztosít a szerveralapú alkalmazáskomponensek közötti folyamatok közötti kommunikációhoz. Több előnyt kínálnak a közvetlen idézéssel szemben az összetevők között, például:

Stabilitás – Az alkatrészek hibái sokkal kevésbé hatnak az üzenetekre, mint a komponensek közötti közvetlen hívásokra, mivel az üzenetek sorban tárolódnak, és ott maradnak, amíg megfelelően fel nem dolgozzák őket. Az üzenetfeldolgozás hasonló a tranzakciófeldolgozáshoz, mivel garantált az üzenetfeldolgozás.
Üzenetek priorizálása – Sürgősebb vagy fontosabb üzenetek érkezhetnek viszonylag jelentéktelen üzenetek előtt, így garantálhatod a kritikus alkalmazások megfelelő válaszidejét.
Offline képesség – Amikor üzeneteket küldenek, ideiglenes sorba kerülnek, és ott maradhatnak, amíg sikeresen kézbesítik őket. Ha bármilyen okból a kívánt sorhoz való hozzáférés nem elérhető, a felhasználó folytathatja az akciót. Ugyanakkor más műveletek is folytatódhatnak, mintha az üzenetet feldolgozták volna, mert az üzenet kézbesítése garantált, amikor a hálózati kapcsolat helyreáll.
Transponciális üzenetfeldolgozás – Több kapcsolódó üzenetet párosítunk egyetlen tranzakcióba, hogy biztosítsák, hogy az üzenetek egymás után kerüljenek kézbesíteni, csak egyszer, és sikeresen lehessen visszaszerezni a célállomás sorból. Ha hiba történik, az egész tranzakciót töröljük.
Biztonság – Az üzenetsor-technológia, amelyen a MessageQueue komponens alapul, a Windows Security-t használja a hozzáférés-ellenőrzés biztosítására, az auditálásra, valamint a komponens által küldött és kapott üzenetek titkosítására és hitelesítésére.


5. Írj egy egyszerű üzenetsor-programot a .Net környezetben

(1) Először telepítse az üzenetsorozási szolgáltatásokat

Telepítsd az MSMQ-t a vezérlőpulton keresztül, a "Programok hozzáadása/eltávolítása" – "Windows komponensek hozzáadása/eltávolítása" lépésével.

Az MSMQ telepíthető munkacsoportban vagy domain módban is. Ha a telepítő nem talál olyan szervert, amely üzenetsort futtat, amely könyvtári szolgáltatásokat nyújt, az csak munkacsoport módban telepíthető, és az Üzenetsorban ezen a számítógépen csak privát sorok létrehozását és közvetlen kapcsolatok létrehozását támogatja más, Üzenetsorokat futtató számítógépekhez.



(2) MSMQ konfigurálása

Nyílt számítógép-menedzsment – Üzenetsorba sorolás és MSMQDemo sorba létrehozása a Privát sorok alatt


(3) Kód írása – egyszerűen demonstráld az MSMQ objektumot

A MessageQueue osztály egy "üzenetsor" köré burkolóz. A MessageQueue osztály hivatkozást ad az Message Queue sorra. Megadhatsz egy útvonalat egy meglévő erőforráshoz a MessageQueue konstruktorban, vagy létrehozhatsz egy új sort a szerveren. Mielőtt hívhatnád a Küldést, Kukucsást vagy Vételt, egy új MessageQueue osztály példányt kell társítanod egy meglévő sorhoz.



A MessageQueue kétféle üzenet-lekérdezést támogat: szinkron és aszinkron. A szinkronizált Peek és Receive metódók arra kérték, hogy a folyamatszál megvárja, hogy egy új üzenet érkezzen a sorba egy meghatározott időközön. Az aszinkron BeginPeek és BeginReceive metódusok lehetővé teszik, hogy a fő alkalmazás feladat külön szálban folytatódjon, mielőtt az üzenet elérné a sort. Ezek a módszerek visszahívási objektumokat és állapotobjektumokat használnak az információs kommunikáció elősegítésére a szálak között.


Forráskód letöltés:

Turisták, ha szeretnétek megnézni ennek a bejegyzésnek a rejtett tartalmát, kérlekVálasz





Előző:15 jó. .NET
Következő:a c#/.net olvassa a torrent hash információjának forráskódját
Közzétéve 2021. 06. 13. 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
Közzétéve 2019. 02. 22. 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Közzétéve 2021. 07. 21. 11:20:26 |
Jó, jó
Közzétéve 2016. 12. 21. 23:04:53 |
Köszönöm, főbérlő
Közzétéve 2016. 12. 28. 19:20:26 |
Nézd meg ezt a mostani testet, hogy ezt a gyakorlatot elvégezd
Közzétéve 2017. 07. 14. 16:32:06 |
Köszönöm, főbérlő。。。。。。。
Közzétéve 2017. 10. 18. 14:26:45 |
Tanulj a csoportvezetőktől
Közzétéve 2017. 10. 24. 5:39:19 |
Tanuld meg
Közzétéve 2017. 11. 18. 21:56:57 |
GOOOOOOOOOOOOOOOOOOOA
Közzétéve 2017. 12. 14. 14:04:20 |
Jó bejegyzésekre válaszolni kell
Közzétéve 2017. 12. 16. 21:49:55 |
213123saedwaeas
Közzétéve 2017. 12. 17. 8:56:11 |
Nézd meg, mit mondanak
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com