VENTES: 1-800-867-1389

Migration d'applications qui utilisent les technologies de messagerie

Mis à jour: janvier 2014

Auteurs : Kun Cheng
Contributeurs : Sreedhar Pelluru, Valery Mizonov, Christian Martinez, Rama Ramani
Analyseurs : Steve Howard, Seth Manheim

Les files d'attente de messages sont généralement utilisées pour que les applications communiquent entre elles, ou pour qu'elles communiquent au sein des composants mêmes de l'application. Dans l'architecture des applications modernes, les architectes et les développeurs peuvent utiliser des files d'attente de messages pour établir un canal de communication asynchrone. Une file d'attente de messages permet à des expéditeurs d'envoyer des messages et de passer à d'autres tâches sans attendre une réponse des récepteurs. Les récepteurs reçoivent et traitent les messages indépendamment sans bloquer les expéditeurs. Le mécanisme vous aide à découpler les composants d'une application qui seraient autrement étroitement intégrés et offre une solution plus souple et évolutive.

Lors de la migration d'une application sur site vers Windows Azure, nous recommandons que les architectes et les développeurs examinent l'architecture actuelle et déterminent s'il est possible d'utiliser les files d'attente Windows Azure ou Microsoft Azure Service Bus pour bénéficier d'une architecture faiblement couplée et pour pouvoir évoluer, en particulier sur la plateforme Windows Azure.

Les files d'attente Windows Azure sont basées sur le stockage Windows Azure et fournissent un mécanisme de mise en file d'attente de base pour prendre en charge la communication de point à point. Les files d'attente Windows Azure prennent en charge l'accès via HTTP ou HTTPS basé sur REST. Chaque file d'attente de messages prend en charge jusqu'à 100 To (limite du compte de stockage actuel). Chaque message peut avoir une taille maximale de 64 Ko. Pour plus d"informations, consultez cet article.


Les files d'attente Windows Azure sont généralement destinées au rôle Web en tant qu'expéditeur, afin de mettre en file d'attente les éléments de travail. Vous pouvez également les utiliser dans un rôle de travail en tant que récepteur pour enlever les éléments de travail de la file d'attente et les traiter de façon asynchrone.


La plateforme Windows Azure offre également une messagerie basée sur les files d'attente via Service Bus. En plus de la mise en file d'attente, Service Bus fournit également des fonctions sécurisées de messagerie et des capacités de relais pour prendre en charge les applications distribuées sur Windows Azure ou les déploiements hybrides des applications sur site et sur Windows Azure. Pour les mécanismes de messagerie, Service Bus prend en charge la communication point à point via les files d'attente Service Bus et le modèle de publication-abonnement (pub-sub) via les rubriques et abonnements Service Bus. Les rubriques et les abonnements Service Bus permettent à plusieurs abonnés d'écouter un serveur de publication en même temps. Les capacités de relais permettent des scénarios de solution hybride dans lesquels les ressources sur site ou les clouds privés de l'entreprise peuvent être étendues, et de communiquer avec les ressources dans le cloud. Service Bus prend en charge l'accès via HTTP/HTTPS basé sur REST ou le protocole TCP. Chaque file d'attente Service Bus peut contenir jusqu'à 5 Go. Chaque message peut avoir une taille maximale de 256 Ko.

Il existe de nombreuses différences entre les files d'attente Windows Azure et les files d'attente Service Bus. Ces différences incluent l'authentification, la prise en charge des transactions et l'intégration WCF. Consultez l'article Files d'attente de Windows Azure et files d'attente de Service Bus – Comparaison et différences pour une comparaison détaillée entre les deux technologies de mise en file d'attente.

Les applications Windows Azure utilisent habituellement Microsoft Message Queuing (MSMQ) comme mécanisme de mise en file d'attente. MSMQ permet aux applications qui s'exécutent sur des serveurs distincts dans des processus distincts de communiquer entre elles de façon durable et faiblement couplée. Il permet également aux applications qui résident dans des environnements réseau hétérogènes d'échanger des informations même s'ils ne sont pas en ligne en même temps. Il offre une garantie de remise des messages, la prise en charge des transactions distribuées, un routage et une sécurité efficaces, et des messages basés sur les priorités.

Lorsque vous migrez des applications qui reposent sur la technologie MSMQ sur la plateforme Windows Azure, gardez à l'esprit que Windows Azure ne prend pas en charge MSMQ à ce jour. La migration vous oblige à modifier votre code pour utiliser les files d'attente Windows Azure. Les sections suivantes proposent différentes options pour migrer vos applications qui reposent sur la technologie MSMQ sur la plateforme Windows Azure.

À de nombreux égards, Service Bus est la fonctionnalité Windows Azure qui ressemble le plus à MSMQ. Les deux ont en commun des fonctions telles que les opérations de mise en file d'attente de base, la prise en charge des transactions et la lettre morte. Toutefois, l'utilisation de Service Bus requiert des API différentes de celles de MSMQ et la sémantique diffère de différentes façons. La liste suivante répertorie quelques différences importantes en termes de dimensionnement et de performances :

  • La taille des messages de Service Bus est limitée à 256 Ko (en-tête et corps) alors que les messages MSMQ peut comporter jusqu'à 4 Mo.

  • Les files d'attente Service Bus sont limitées à 5 Go. La taille d'une file d'attente MSMQ est limitée par le matériel ou des quotas configurables.

  • Le débit de la file d'attente Service Bus peut atteindre 2 000 messages par seconde. Le débit de MSMQ peut quant à lui atteindre 6 000 messages par seconde (selon le test d'évaluation 1k). Consultez Optimiser les performances dans un environnement Microsoft Message Queue Server pour plus de détails. .

Pour faciliter la migration, il est possible d'établir un lien entre MSMQ sur site et Service Bus sur Windows Azure via un pont. Consultez l'exemple de code ici.

Les files d'attente Windows Azure fournissent un canal de communication point à point de base. Contrairement à MSMQ, les files d'attente Windows Azure ne prennent pas en charge les environnements hétérogènes. En outre, elles ne prennent pas en charge en mode natif les fonctionnalités typiques d'un environnement classique MSMQ, comme la lettre morte automatique, les transactions et la garantie de classement. Toutefois, les développeurs d'applications peuvent implémenter les fonctionnalités nécessaires sur les files d'attente Windows Azure pour obtenir des fonctions similaires à MSMQ. Néanmoins, l'obtention de cette fonctionnalité nécessite la personnalisation des applications.

Avec la prise en charge intégrée de MSMQ sur Windows Server, en exécutant MSMQ dans le même nœud qu'un rôle de travail, vous disposez de toutes les fonctionnalités de MSMQ sur site. Cependant, le rôle de travail est susceptible de basculer et d'être en maintenance. Lorsque cela se produit, toutes les informations d'état, telles que les messages stockés au format de stockage local MSMQ, sont perdues et sont irrécupérables. À moins que MSMQ ait été utilisé en mode sans état et que l'application soit conçue pour être en mesure de gérer une situation de basculement de rôle, il n'est pas recommandé d'exécuter MSMQ sur une instance de rôle de travail.

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.
Afficher:
© 2014 Microsoft