web-dev-qa-db-fra.com

Quand utiliser le protocole Advanced Message Queuing comme RabbitMQ?

Quelqu'un peut-il m'expliquer dans quels cas d'utilisation je devrais envisager d'utiliser AMQP comme par exemple RabbitMQ? Quels sont les avantages et inconvénients?

45
vbd

Imaginez que vous disposez d'un service Web qui peut accepter de nombreuses demandes par seconde. Vous avez également un système comptable qui fait beaucoup de choses, dont l'une traite les demandes provenant du service Web.

Si vous mettez une file d'attente entre le service Web et le système comptable, vous pourrez:

  • ont moins de couplage entre les deux applications, car maintenant les deux applications doivent connaître les paramètres de configuration du système de gestion de file d'attente et le nom de la file d'attente. Ici, le problème est que, généralement, vous êtes plus susceptible de déplacer vers un autre serveur une application que de déplacer le système de gestion de file d'attente
  • si vous avez beaucoup de demandes à venir dans un court laps de temps, le système comptable sera en mesure de toutes les traiter
  • persister certaines demandes si leur nombre devient vraiment énorme

Bien sûr, vous pourriez avoir des situations plus complexes où le nombre de vos applications est beaucoup plus grand que deux et vous devez gérer la communication entre elles.

En plus de fournir un tampon entre un service Web et un autre service principal, les files d'attente de messages peuvent être utilisées pour des scénarios plus avancés. Rabbit MQ (et d'autres produits Message Queue matures également appelés MOM - Message Oriented Middleware) peuvent être configurés pour acheminer et distribuer des messages selon différentes règles.

Par exemple, la technique de routage Pub-Sub permet à une seule source d'envoyer un message et à de nombreux auditeurs de le recevoir. Ceci est couramment utilisé par les logiciels de négociation d'actions pour garder les utilisateurs à jour.

En outre, étant donné que la plupart des MOM ont des SDK pour plusieurs langues et plates-formes, ils peuvent être utilisés pour intégrer des applications écrites sur différentes plates-formes.

Ce ne sont que quelques-uns des scénarios activés par les MOM.

16
Michael Brown