Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 304494|Отговор: 72

[Източник] c# Използването на опашката за съобщения MessageQueue с изходен код

  [Копирай линк]
Публикувано в 14.12.2016 г. 13:51:37 ч. | | | |

С MSMQ (Microsoft Message Queue) разработчиците на приложения могат удобно да комуникират с приложенията бързо и надеждно чрез изпращане и получаване на съобщения. Обработката на съобщения ви предоставя надежден безотказен метод за гарантирано изпращане на съобщения и изпълнение на множество бизнес процеси.

MSMQ, подобно на XML Web Services и .Net Remoting, е технология за разпределена разработка. Въпреки това, при използване на XML уеб услуги или .Net отдалечени компоненти, клиентът трябва да обменя информация със сървъра в реално време, а сървърът трябва да остане онлайн. MSMQ може да работи, когато сървърът е офлайн, като временно запазва съобщението в опашката на клиентската страна и след това го изпраща към сървъра за обработка, когато е онлайн.

Очевидно MSMQ не е подходящ за ситуация, в която клиентът трябва да отговаря навреме от сървъра, а MSMQ взаимодейства със сървъра по асинхронен начин, така че няма нужда да чакате сървърът да обработи процеса дълго време.



Въпреки че както XML Web Services, така и .Net Remoting предоставят свойството [OneWay] за обработка на асинхронни повиквания, то се използва за решаване на проблема с дългите повиквания на метод от страна на сървъра, които блокират клиентската страна за дълго време. Въпреки това, това не може да реши проблема с голямото натоварване на клиента и сървърът приема заявки по-бързо, отколкото може да обработи.

Обикновено атрибутът [OneWay] не се използва в специализирани услуги за съобщения.



1. Основни термини и понятия

"Съобщение" е единица данни, която се предава между два компютъра. Съобщенията могат да бъдат много прости, например да съдържат само текстови низове; Той може да бъде и по-сложен и да съдържа вградени обекти.



Съобщенията се изпращат в опашката. "Опашка за съобщения" е контейнер, който съхранява съобщения по време на тяхното предаване. Мениджърът на опашката за съобщения действа като посредник при предаване на съобщения от източника си към дестинацията. Основната цел на опашката е да осигури маршрутизация и да гарантира доставката на съобщения; Ако получателят е недостъпен при изпращането на съобщението, опашката за съобщения задържа съобщението, докато не бъде успешно доставено.



"Опашка на съобщения" е технологията за обработка на съобщения на Microsoft, която предоставя възможности за обработка на съобщения и опашка за всяко приложение във всяка комбинация от компютри с инсталиран Microsoft Windows, независимо дали са в една и съща мрежа или онлайн по едно и също време.



"Мрежа от опашки за съобщения" е всяка група компютри, които могат да изпращат съобщения един на друг. Различните компютри в мрежата играят различни роли за безпроблемна обработка на съобщенията. Някои от тях предоставят информация за маршрутизация, за да определят как да се изпращат съобщения, други съдържат важна информация за цялата мрежа, а трети просто изпращат и получават съобщения.



По време на инсталацията на опашката за съобщения администраторите определят кои сървъри могат да комуникират помежду си и задават специални роли за конкретни сървъри. Компютрите, които съставляват тази мрежа от "опашки за съобщения", се наричат "сайтове" и са свързани помежду си чрез "връзки към сайта". Всеки sitelink има свързан "overhead", който се определя от администратора и показва колко често съобщенията се доставят чрез този sitelink.



Администраторът на опашката за съобщения също така настройва един или повече компютъра в мрежата, които действат като сървъри за маршрутизиране. Сървърът за маршрутизиране разглежда разходите на всяка sitelink, за да определи най-бързия и ефективен начин за предаване на съобщение през няколко сайта и да определи как да се достави съобщението.



2. Тип опашка

Има два основни типа опашки: опашки, създадени от вас или други потребители във вашата мрежа, и системни опашки.

Опашка, създадена от потребителя, може да бъде една от следните форми:

Публичните опашки се репликират в цялата мрежа за съобщения и имат потенциал да бъдат достъпвани от всички сайтове, свързани към мрежата.

Частните опашки не се публикуват в цялата мрежа. Вместо това те са достъпни само на местния компютър, на който се намират. Частните опашки могат да бъдат достъпени само от приложения, които знаят пълното име на пътя или етикета на опашката.

Опашката за управление съдържа съобщения, които потвърждават получаването на съобщения, изпратени в дадена мрежа от опашка за съобщения. Посочете опашката за управление, която искате компонентът MessageQueue да използва, ако има такова.

Опашката за отговори съдържа отговорните съобщения, които се връщат към изпращащото приложение, когато целевото приложение получи съобщението. Посочете опашката за отговори, която искате компонентът MessageQueue да използва, ако има такъв.



Опашките, генерирани от системата, обикновено се разделят на следните категории:

Journal Queue по желание съхранява копия на изпратени съобщения и копия на съобщения, премахнати от опашката. Една опашка за дневник на всеки клиент за опашка за съобщения съхранява копие на съобщения, изпратени от този компютър. За всяка опашка на сървъра се създава отделна дневникова опашка. Този дневник проследява съобщения, които се премахват от тази опашка.

Опашката за мъртви писма съхранява копия на съобщения, които не могат да бъдат доставени или са изтекли. Ако съобщение, което изтича или не може да бъде доставено, е транзакционно, то се съхранява в специална опашка за мъртви букви, наречена "опашка за транзакционни мъртви букви". Мъртвите букви се съхраняват на компютъра, където се намира изтеклото съобщение. За повече информация относно съобщенията за таймаут и изтичане, вижте свойствата на съобщенията по подразбиране.

Опашката за доклади съдържа съобщения, които показват маршрута, по който съобщението достига до дестинацията, и може също да съдържа тестови съобщения. На всеки компютър може да има само една опашка за докладване.

Специализираната системна опашка е серия от специализирани опашки, които съхраняват управленските и известителните съобщения, необходими на системата, за да извърши операции по обработка на съобщения.

Повечето от работата в приложението включва достъп до публични опашки и техните съобщения. Въпреки това, в зависимост от воденето на дневник, потвърждение и други специални нужди на приложението, вероятно ще се използват няколко различни системни опашки в ежедневните операции.



3. Синхронна срещу асинхронна комуникация

Комуникацията в опашката е по същество асинхронна, защото изпращането и получаването на съобщения от опашката се извършва в различни процеси. Също така, операцията за получаване може да се извърши асинхронно, тъй като лицето, което иска да получи съобщението, може да извика метода BeginReceive към дадена опашка и веднага да продължи с други задачи, без да чака отговор. Това е много различно от това, което хората наричат "синхронна комуникация".



При синхронна комуникация изпращачът на заявката трябва да изчака отговор от получателя, преди да изпълни други задачи. Времето, което изпращачът чака, зависи изцяло от времето, необходимо на получателя да обработи заявката и да изпрати отговора.



4. Взаимодействие с опашки от съобщения

Обработката на съобщения и обменът на съобщения предоставят мощен и гъвкав механизъм за междупроцесна комуникация между сървърно базирани приложения. Те предлагат няколко предимства пред директното извикване между компоненти, включително:

Стабилност – Повредите на компонентите засягат съобщенията много по-малко от директните повиквания между компоненти, тъй като съобщенията се съхраняват в опашка и остават там, докато не бъдат правилно обработени. Обработката на съобщения е подобна на транзакционната обработка, тъй като обработката на съобщения е гарантирана.
Приоритизиране на съобщенията – По-спешни или важни съобщения могат да бъдат получени преди относително незначителни, така че можете да гарантирате адекватно време за отговор при критични приложения.
Офлайн възможност – Когато съобщенията се изпращат, те могат да бъдат изпратени в временна опашка и да останат там, докато не бъдат успешно доставени. Когато достъпът до желаната опашка е невъзможен по каквато и да е причина, потребителят може да продължи с действието. В същото време други операции могат да продължат така, сякаш съобщението е обработено, тъй като доставката на съобщението е гарантирана при възстановяване на мрежовата връзка.
Транзакционна обработка на съобщения – Свързване на множество свързани съобщения в една транзакция, за да се гарантира, че съобщенията се доставят последователно, само веднъж, и могат успешно да бъдат извлечени от тяхната дестинационна опашка. Ако има грешки, цялата транзакция се анулира.
Сигурност – Технологията за опашка на съобщения, на която е базиран компонентът MessageQueue, използва Windows Security за осигуряване на контрол на достъпа, осигуряване на одит и криптиране и удостоверяване на съобщения, изпратени и получени от компонента.


5. Напишете проста програма за опашка на съобщения в .Net среда

(1) Първо инсталирайте услугите за опашка на съобщения

Инсталирайте MSMQ през контролния панел, стъпката "Добави/Премахване на програми" – "Добавяне/премахване на Windows компоненти".

MSMQ може да се инсталира както в режим на работна група, така и в домейн режим. Ако инсталаторът не намери сървър, който изпълнява опашка за съобщения и предоставя услуги за директории, той може да бъде инсталиран само в режим на работна група, а опашката за съобщения на този компютър поддържа само създаване на частни опашки и създаване на директни връзки с други компютри, които работят с опашки за съобщения.



(2) Конфигуриране на MSMQ

Отваряне на компютърно управление – Опашка на съобщения и създаване на MSMQDemo опашка под частни опашки


(3) Пишете код – просто демонстрирайте MSMQ обекта

Класът MessageQueue е обвивка около "опашка за съобщения". Класът MessageQueue предоставя препратка към опашката Message Queue. Можете да зададете път към съществуващ ресурс в конструктора на MessageQueue или да създадете нова опашка на сървъра. Преди да можете да извикате Send, Peek или Receive, трябва да свържете нова екземпляр на класа MessageQueue с вече съществуваща опашка.



MessageQueue поддържа два типа възстановяване на съобщения: синхронно и асинхронно. Синхронизираните методи Peek и Receive карат процесната нишка да чака ново съобщение да пристигне в опашката на определен интервал. Асинхронните методи BeginPeek и BeginReceive позволяват основната задача на приложението да продължи да се изпълнява в отделна нишка, преди съобщението да достигне опашката. Тези методи работят чрез използване на обекти за обратно извикване и обекти на състояние, за да улеснят комуникацията на информация между нишките.


Изтегляне на изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор





Предишен:15 добре. .NET
Следващ:C#/.NET чете изходния код на хеш информацията на торент торента
Публикувано в 13.06.2021 г. 20:54:46 ч. |
ДОБРЕ, ДОБРЕ.
Публикувано в 22.02.2019 г. 11:01:34 ч. |
https://download.csdn.net/download/winrich/9585398
Публикувано в 21.07.2021 г. 11:20:26 ч. |
Добре
Публикувано в 21.12.2016 г. 23:04:53 ч. |
Благодаря, наемодателю
Публикувано в 28.12.2016 г. 19:20:26 ч. |
Разгледайте това текущо упражнение, за да направите това упражнение
Публикувано в 14.07.2017 г. 16:32:06 ч. |
Благодаря, наемодателю。。。。。。。
Публикувано в 18.10.2017 г. 14:26:45 ч. |
Учете се от ръководителите на групи
Публикувано в 24.10.2017 г. 5:39:19 ч. |
Научи го
Публикувано в 18.11.2017 г. 21:56:57 ч. |
ОООООООООООООООО
Публикувано в 14.12.2017 г. 14:04:20 ч. |
Добри публикации трябва да бъдат отговорени
Публикувано в 16.12.2017 г. 21:49:55 ч. |
213123saedwaeas
Публикувано в 17.12.2017 г. 8:56:11 ч. |
Виж какво се казва
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com