Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 304494|Répondre: 72

[Source] c# L’utilisation de la file de messages MessageQueue avec code source

  [Copié le lien]
Publié sur 14/12/2016 13:51:37 | | | |

Avec MSMQ (Microsoft Message Queue), les développeurs d’applications peuvent communiquer rapidement et de manière fiable avec les applications en envoyant et recevant des messages. Le traitement des messages vous offre une méthode fiable et infaillible pour garantir la messagerie et réaliser de nombreux processus métier.

MSMQ, comme les services Web XML et le télémot .Net, est une technologie de développement distribuée. Cependant, lors de l’utilisation de services Web XML ou de composants à distance .Net, le client doit échanger des informations avec le serveur en temps réel, et le serveur doit rester en ligne. MSMQ peut fonctionner lorsque le serveur est hors ligne, en enregistrant temporairement le message dans la file d’attente côté client, puis en l’envoyant au serveur pour traitement lorsqu’il est en ligne.

Évidemment, MSMQ n’est pas adapté à la situation où le client doit répondre rapidement depuis le serveur, et où MSMQ interagit avec le serveur de manière asynchrone, il n’y a donc pas à s’inquiéter d’attendre longtemps que le serveur traite longtemps.



Bien que les services Web XML et .Net Remoting fournissent tous deux la propriété [OneWay] pour gérer les appels asynchrones, elle est utilisée pour résoudre le problème des appels de méthode longs côté serveur bloquant le côté client pendant longtemps. Cependant, il ne peut pas résoudre le problème de la forte charge client, et le serveur accepte les requêtes plus rapidement qu’il ne peut le traiter.

En général, l’attribut [OneWay] n’est pas utilisé dans les services de messagerie spécialisés.



1. Termes et concepts de base

Un « message » est une unité de données transmise entre deux ordinateurs. Les messages peuvent être très simples, par exemple ne contenant que des chaînes de texte ; Il peut aussi être plus complexe et contenir des objets intégrés.



Les messages sont envoyés à la file d’attente. Une « file d’attente de messages » est un conteneur qui contient les messages pendant leur transmission. Le gestionnaire de file d’attente de messages agit comme intermédiaire lors du relais des messages de sa source vers sa destination. Le but principal d’une file d’attente est de fournir un routage et de garantir la livraison des messages ; Si le destinataire n’est pas disponible lors de l’envoi du message, la file d’attente retient le message jusqu’à ce qu’il puisse être livré avec succès.



La « file d’attente de messages » est la technologie de traitement des messages de Microsoft qui offre des capacités de traitement et de mise en file d’attente pour toute application, quelle que soit la combinaison d’ordinateurs équipés de Microsoft Windows, qu’ils soient sur le même réseau ou en ligne simultanément.



Un « réseau de file d’attente de messages » est tout groupe d’ordinateurs capables d’envoyer des messages entre eux. Différents ordinateurs d’un réseau jouent des rôles différents pour garantir un traitement fluide des messages. Certains fournissent des informations de routage pour déterminer comment envoyer des messages, d’autres détiennent des informations importantes sur l’ensemble du réseau, et d’autres encore simplement envoyer et recevoir des messages.



Lors de l’installation de la file d’attente de messages, les administrateurs déterminent quels serveurs peuvent communiquer entre eux et définissent des rôles spéciaux pour des serveurs spécifiques. Les ordinateurs qui composent ce réseau de « files de messages » sont appelés « sites », et ils sont reliés entre eux par des « liens de site ». Chaque lien de site comporte une « surcharge » associée, déterminée par l’administrateur et indiquant à quelle fréquence les messages sont transmis via ce lien de site.



L’administrateur de la file de messages configure également un ou plusieurs ordinateurs dans le réseau qui agissent comme serveurs de routage. Le serveur de routage examine la surcharge de chaque lien de site pour déterminer la manière la plus rapide et la plus efficace de transmettre un message via plusieurs sites afin de déterminer comment le transmettre.



2. Type de file d’attente

Il existe deux principaux types de files d’attente : les files créées par vous ou d’autres utilisateurs de votre réseau et les files d’attente système.

Une file d’attente créée par l’utilisateur peut être l’une des options suivantes :

Les files d’attente publiques sont répliquées sur l’ensemble du réseau de file de messages et peuvent être accessibles par tous les sites connectés au réseau.

Les files d’attente privées ne sont pas publiées sur l’ensemble du réseau. À la place, ils ne sont disponibles que sur l’ordinateur local où ils se trouvent. Les files d’attente privées ne peuvent être accessibles que par des applications qui connaissent le nom complet du chemin ou l’étiquette de la file d’attente.

La File de gestion contient des messages qui accusent réception de messages envoyés dans un réseau de file de messages donné. Spécifiez la file de gestion que vous souhaitez que le composant MessageQueue utilise, le cas échéant.

La file de réponse contient les messages de réponse qui sont retournés à l’application émettrice lorsque l’application cible reçoit le message. Spécifiez la file de réponse que vous souhaitez que le composant MessageQueue utilise, le cas échéant.



Les files d’attente générées par le système sont généralement divisées en les catégories suivantes :

La file d’attente journalière stocke optionnellement des copies des messages envoyés et des copies des messages retirés de la file. Une seule file de journal sur chaque client de file de messages stocke une copie des messages envoyés depuis cet ordinateur. Une file de journal distincte est créée pour chaque file sur le serveur. Ce journal suit les messages qui sont retirés de cette file d’attente.

La file d’attente des lettres mortes stocke des copies de messages qui ne peuvent pas être livrés ou qui ont expiré. Si un message expirant ou ne peut pas être livré est transactionnel, il est stocké dans une file spéciale de lettres mortes appelée « file transactionnelle de lettres mortes ». Les lettres mortes sont stockées sur l’ordinateur où se trouve le message expiré. Pour plus d’informations sur les messages d’expiration et d’expiration, voir Propriétés des messages par défaut.

La file de rapports contient des messages indiquant le chemin emprunté par le message pour atteindre la destination, et peut également contenir des messages de test. Il ne peut y avoir qu’une seule file de signalement sur chaque ordinateur.

Une file d’attente système dédiée est une série de files dédiées qui stockent les messages de gestion et de notification dont un système a besoin pour effectuer des opérations de traitement des messages.

La plupart des tâches effectuées dans l’application consistent à accéder aux files d’attente publiques et à leurs messages. Cependant, selon le journalisation, l’accusé de réception et d’autres besoins spécifiques de traitement de l’application, il est probable que plusieurs files d’attente système différentes seront utilisées dans les opérations quotidiennes.



3. Communication synchrone vs. asynchrone

La communication en file d’attente est intrinsèquement asynchrone car l’envoi et la réception de messages depuis la file d’attente se font dans des processus différents. De plus, l’opération de réception peut être effectuée de manière asynchrone, car la personne souhaitant recevoir le message peut appeler la méthode BeginReceive à n’importe quelle file d’attente et reprendre immédiatement d’autres tâches sans attendre de réponse. C’est très différent de ce que les gens appellent la « communication synchrone ».



Dans la communication synchrone, l’émetteur de la requête doit attendre une réponse du destinataire prévu avant d’effectuer d’autres tâches. Le temps d’attente de l’expéditeur dépend entièrement du temps nécessaire au destinataire pour traiter la demande et envoyer la réponse.



4. Interaction avec les files de messages

Le traitement des messages et la messagerie offrent un mécanisme puissant et flexible de communication entre les composants applicatifs basés sur le serveur. Ils offrent plusieurs avantages par rapport à l’invocation directe entre composants, notamment :

Stabilité – Les défaillances des composants affectent beaucoup moins les messages que les appels directs entre composants, car les messages sont stockés dans une file d’attente et y restent jusqu’à ce qu’ils soient correctement traités. Le traitement des messages est similaire au traitement des transactions en ce sens que le traitement des messages est garanti.
Priorisation des messages – Des messages plus urgents ou importants peuvent être reçus avant les messages relativement peu importants, ce qui vous permet de garantir un temps de réponse adéquat pour les applications critiques.
Capacité hors ligne – Lorsque les messages sont envoyés, ils peuvent être envoyés dans une file temporaire et y rester jusqu’à leur livraison réussie. Lorsque l’accès à la file d’attente souhaitée n’est pas disponible pour quelque raison que ce soit, l’utilisateur peut procéder à l’action. En même temps, d’autres opérations peuvent se poursuivre comme si le message avait été traité, car la livraison du message est garantie lorsque la connexion réseau est rétablie.
Traitement transactionnel des messages – Associez plusieurs messages liés en une seule transaction pour garantir que les messages sont livrés séquentiellement, une seule fois, et peuvent être récupérés avec succès depuis leur file de destination. En cas d’erreurs, l’ensemble de la transaction est annulé.
Sécurité – La technologie de file d’attente de messages sur laquelle repose le composant MessageQueue utilise Windows Security pour sécuriser le contrôle d’accès, assurer l’audit, ainsi que chiffrer et authentifier les messages envoyés et reçus par le composant.


5. Écrire un programme simple de file d’attente de messages dans l’environnement .Net

(1) Installer d’abord les services de file d’attente des messages

Installez MSMQ via le Panneau de configuration, l’étape « Ajouter/Supprimer des programmes » – « Ajouter/Supprimer des composants Windows ».

MSMQ peut être installé en mode groupe de travail ou en mode domaine. Si l’installateur ne trouve pas de serveur exécutant une file d’attente de messages fournissant des services d’annuaire, il ne peut être installé qu’en mode groupe de travail, et la file d’attente de messages sur cet ordinateur ne supporte que la création de files d’attente privées et la création de connexions directes vers d’autres ordinateurs exécutant des files de messages.



(2) Configurer MSMQ

Ouvrir la gestion informatique – Files d’attente de messages et créer une file d’attente MSMQDemo sous files privées


(3) Écrire du code – simplement démontrer l’objet MSMQ

La classe MessageQueue est un enveloppement autour d’une « file de messages ». La classe MessageQueue fournit une référence à la file d’attente de messages Queue. Vous pouvez spécifier un chemin vers une ressource existante dans le constructeur MessageQueue, ou créer une nouvelle file d’attente sur le serveur. Avant de pouvoir appeler Send, Peek ou Receive, vous devez associer une nouvelle instance de la classe MessageQueue à une file existante.



MessageQueue prend en charge deux types de récupération de messages : synchrone et asynchrone. Les méthodes synchronisées Peek et Receive font que le fil de processus attend qu’un nouveau message arrive dans la file d’attente à un intervalle spécifié. Les méthodes asynchrones BeginPeek et BeginReceive permettent à la tâche principale de l’application de continuer à s’exécuter dans un thread séparé avant que le message n’atteigne la file d’attente. Ces méthodes fonctionnent en utilisant des objets de rappel et des objets d’état pour faciliter la communication de l’information entre threads.


Téléchargement du code source :

Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaîtRépondre





Précédent:15 bien. .NET
Prochain:C#/.NET lit le code source des informations de hachage du torrent torrent
Publié sur 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
Publié sur 22/02/2019 11:01:34 |
https://download.csdn.net/download/winrich/9585398
Publié sur 21/07/2021 11:20:26 |
Bien, bien
Publié sur 21/12/2016 23:04:53 |
Merci, propriétaire
Publié sur 28/12/2016 19:20:26 |
Regarde celui-ci pour faire cet exercice
Publié sur 14/07/2017 16:32:06 |
Merci, propriétaire。。。。。。。
Publié sur 18/10/2017 14:26:45 |
Apprenez des responsables de groupe
Publié sur 24/10/2017 05:39:19 |
Apprends-le
Publié sur 18/11/2017 21:56:57 |
GOOOOOOOOOOOOOOD
Publié sur 14/12/2017 14:04:20 |
Il faut répondre aux bons messages
Publié sur 16/12/2017 21:49:55 |
213123saedwaeas
Publié sur 17/12/2017 08:56:11 |
Regardez ce qui se dit
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com