Je n'ai pas écrit Spring Boot depuis longtemps. Il se trouve que j'écrivais Spring Cloud Bus récemment. Parce que le contenu aura une certaine pertinence, j'ajouterai un article sur l'intégration d'AMQP.
Introduction au courtier de messages et AMQP
Le courtier de messages est un modèle architectural pour la vérification, la transmission et le routage des messages. Ses objectifs de conception sont principalement utilisés dans les scénarios suivants:
AMQP est l'abréviation du protocole de mise en file d'attente de messages avancé, un protocole de couche d'application standard ouvert pour le middleware de message. AMQP définit ces fonctionnalités:
Lapin
Le RabbitMQ qui doit être introduit dans cet article est un produit middleware implémenté avec le protocole AMQP. Il peut prendre en charge plusieurs systèmes d'exploitation et plusieurs langages de programmation, et peut couvrir presque toutes les plateformes technologiques de niveau d'entreprise traditionnelles.
Installer
Dans la page de téléchargement du site officiel de RabbitMQ https://www.rabbitmq.com/download.html, nous pouvons obtenir des packages d'installation et des instructions pour divers systèmes d'exploitation. Ici, nous expliquerons plusieurs plates-formes couramment utilisées une par une.
Voici les descriptions de version du serveur Erlang et Rabbitmq que nous utilisons:
Installation de Windows
Installez Erland, obtenez le package d'installation EXE via la page de téléchargement officielle http://www.erlang.org/downloads, ouvrez-la directement et complétez l'installation.
Installez Rabbitmq et obtenez le package d'installation EXE via la page de téléchargement officielle https://www.rabbitmq.com/download.html.
Une fois le téléchargement terminé, exécutez le programme d'installation directement.
Une fois l'installation du serveur RabbitMQ terminé, il s'inscrit automatiquement en tant que service et démarrera avec la configuration par défaut.
Installation de Mac OS X
L'utilisation de l'outil Brew dans Mac OS X peut facilement installer le serveur RabbitMQ, suivez simplement la commande suivante:
Grâce à la commande ci-dessus, la commande RabbitMQ Server sera installée dans / usr / local / sbin et ne sera pas automatiquement ajoutée aux variables d'environnement de l'utilisateur, nous devons donc ajouter le contenu suivant au fichier .bash_profile ou .profile:
Path = $ path: / usr / local / sbin
De cette façon, nous pouvons démarrer le serveur RabbitMQ via la commande RabbitMQ-Server.
Installation d'Ubuntu
Dans Ubuntu, nous pouvons utiliser le référentiel APT pour installer
Installer Erlang et exécuter: apt-get install erlang
Exécutez la commande suivante pour ajouter un référentiel apt à /etc/apt/sources.list.d
echo 'deb http://www.rabbitmq.com/debian/ Testing Main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
Mettez à jour la liste des packages du référentiel APT et exécutez la commande sudo apt-get updue
Installez le serveur Rabbit et exécutez la commande sudo apt-get install labbitmq-server
Gestion du lapin
Nous pouvons le gérer directement via l'accès au fichier de configuration ou via l'accès Web. Ci-dessous, nous présenterons comment gérer sur le Web.
Exécutez la commande RabbitMQ-Plugins Activer RabbitMQ_Management pour activer le plug-in de gestion Web afin que nous puissions le gérer via le navigateur.
> RabbitMQ-Plugins Activer Rabbitmq_Management Les plugins suivants ont été activés: Mochiweb webmachine Rabbitmq_web_dispatch AMQP_Client Rabbitmq_Management_Agent Rabbitmq_ManagementApplying Plugin Configuration à Rabbit @ PC-201602152056 ... a commencé 6 plugins.
Ouvrez le navigateur et visitez: http: // localhost: 15672 /, et connectez-vous avec l'invité d'utilisateur par défaut, et le mot de passe est également invité. Nous pouvons voir la page de gestion de la figure suivante:
D'après la figure, nous pouvons voir certains concepts de base mentionnés dans le chapitre précédent, tels que: les connexions, les canaux, les échanges, la file d'attente, etc. Les lecteurs qui l'utilisent pour la première fois peuvent cliquer dessus pour voir quel contenu ils ont et se familiariser avec le côté serveur du serveur RabbitMQ.
Cliquez sur l'onglet Admin pour gérer les utilisateurs ici.
Intégration de démarrage de printemps
Ci-dessous, nous avons un sentiment et une compréhension intuitifs de RabbitMQ en intégrant RabbitMQ dans l'application Spring Boot et en implémentant un exemple simple d'envoi et de réception de messages.
L'intégration de RabbitMQ dans Spring Boot est très facile, car nous avons déjà introduit des POM de démarrage, et le module AMQP peut bien prendre en charge le RabbitMQ. Parlons en détail du processus d'intégration:
Créez un nouveau projet Spring Boot, nommé "Rabbitmq-Hello".
Dans pom.xml, les dépendances suivantes sont introduites, où Spring-Boot-Starter-AMQP est utilisée pour soutenir RabbitMQ.
<parent> <proupId> org.springframework.boot </proupId> <Ertifactid> printemps-boot-starter-Parent </ artifactid> <version> 1.3.7.release </ version> <loutpath /> <! - Lookup Parent de Repository -> </parepreences> </pedency> <proupId> Org.spring <ArtefactId> Spring-Boot-Starter-Amqp </ Artifactid> </Dependency> <Dedency> <ProupID> org.springFramework.boot </prouverid> <Artifactid> Spring-Boot-Starter-Test </Retifactid> <POPE> Test </cope> </Dedency> </Dependants>
Configurer la connexion et les informations utilisateur sur RabbitMQ dans Application.Properties. Les utilisateurs peuvent revenir au contenu d'installation ci-dessus et créer des utilisateurs dans la page de gestion.
printemps.application.name = Rabbitmq-hello
printemps.rabbitmq.host = localhostspring.rabbitmq.port = 5672spring.rabbitmq.username = springspring.rabbitmq.password = 123456
Créer un expéditeur de producteur de messages. L'interface AMQPTemplate définit un ensemble d'opérations de base pour le protocole AMQP en injectant une instance de l'interface AMQPTemplate. Dans Spring Boot, son implémentation spécifique sera injectée en fonction de la configuration. Dans ce producteur, nous générons une chaîne et l'envoyons dans une file d'attente appelée Hello.
Sender de classe @componentpublic {@autowired private amqptemplate labbitTemplate; public void Send () {String context = "Hello" + new Date (); System.out.println ("Sender:" + Context); this.rabbitTemplate.ConvertandSend ("Hello", context); }} Créer un récepteur de consommation de message. L'annotation @rabbitListener définit l'écoute de la file d'attente Hello de cette classe et utilise l'annotation @rabbithandler pour spécifier la méthode de traitement du message. Par conséquent, le consommateur réalise la consommation de la file d'attente Hello, et l'opération de consommation est le contenu de la chaîne du message de sortie.
@ Composant @ RabbitListener (que les queues = "Hello") Récepteur de classe publique {@rabbithandler public void Process (String hello) {System.out.println ("Receiver:" + Hello); }} Créer une classe de configuration Rabbitmq RabbitConfig, qui est utilisée pour configurer des informations avancées telles que les files d'attente, les commutateurs et le routage. Ici, nous nous concentrons sur le démarrage et le définissez d'abord avec une configuration minimisant pour terminer un processus de production et de consommation de base.
@ConfigurationPublic class rabbitconfig {@bean public Queue helloQueue () {return new Queue ("Hello"); }} Créez la classe d'application principale:
@Springbootapplicationpublic class helloApplication {public static void main (string [] args) {printempaPlication.run (helloapplication.class, args); }} Créez une classe de test unitaire pour appeler la production de messages:
@Runwith (springjunit4classrunner.class) @springApplicationConfiguration (Classes = HelloApplication.class) classe publique HelloApplicationTests {@Autowired Private Sender Sender; @Test public void hello () lève une exception {Sender.Send (); }}Après avoir terminé l'écriture du programme, essayez de l'exécuter. Assurez-vous d'abord que le serveur RabbitMQ a commencé, puis effectuez les opérations suivantes:
Démarrez la classe principale de l'application, à partir de la console, nous voyons le contenu suivant, le programme crée une connexion pour accéder à SpringCloud en 127.0.0.1:5672.
Copiez le code comme suit: OsarcCachingConnectionFactory: Création de nouvelles connexions: SimpleConnection @ 29836d32 [Delegate = Amqp: //[email protected]: 5672 /]
Dans le même temps, via le panneau de commande RabbitMQ, nous pouvons voir que les entrées contenant la connexion actuelle en connexion et les canaux.
Exécutez la classe de test unitaire et nous pouvons voir la sortie suivante dans la console, et le message est envoyé à la file d'attente Hello du serveur RabbitMQ.
Expéditeur: Bonjour Sun 25 septembre 11:06:11 CST 2016
Passez à la console de la classe principale de l'application, nous pouvons voir la sortie suivante, le consommateur exécute le programme d'écoute de la file d'attente Hello et diffuse les informations de message reçu.
Récepteur: Hello Sun 25 septembre 11:06:11 CST 2016
Grâce à l'exemple ci-dessus, nous avons introduit le module Spring-Boot-Starter-AMQP dans l'application Spring Boot, et simplement configuré pour compléter le contenu de développement de la production et de la consommation de messages RabbitMQ. Cependant, dans les applications réelles, nous avons encore beaucoup de contenu qui n'a pas été démontré, nous ne donnerons donc pas plus d'explications ici. Les lecteurs peuvent consulter les didacticiels officiels RabbitMQ pour acquérir une compréhension plus complète.
Exemple complet: chapitre 5-2-1
Chine open source: http://git.oschina.net/diidispace/springboot-learning/tree/master/chapter5-2-1
Github: https://github.com/dyc87112/springboot-learning/tree/master/chapter5-2-1
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.