Dans cet exemple, nous créerons une application Spring Boot avec un émetteur(Sender) et un récepteur(Receiver), tous deux connectés via une file d'attente externe (RabbitMQ (queue)).
Il s'agit ici d'un exemple "hello world" très basique. le but étant surtout de comprendre le principe et de vérifier si RabbitMq fonctionne correctement sur votre ordinateur. Le plus intéressant est avenir dans mon prochain post ou j’implanterais l'application selon l’architecture Microservices.
Procédez comme suit:
prérequis: Pour cristalliser les concepts microservices, il est supposé que les composants suivants sont installés dans votre ordinateur.
- JDK 1.8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- Spring Tool Suite 3.7.2 (STS): https://spring.io/tools/sts/all
- Maven 3.3.1: https://maven.apache.org/download.cgi
Note: l’entièreté du code source est disponible via github: https://github.com/Georges73/springbootRabbitMq
- Démarrer STS
- Accédez à File | New | Spring Starter Project.
- Dans la section Name tapez : bootmessaging
- Selectionnez AMQP sous I/O
- Rabbit MQ sera également nécessaire pour cet exemple. Téléchargez et installez la dernière version de Rabbit MQ ici https://www.rabbitmq.com/download.html et suivez les étapes d'installation documentées sur le site. Une fois prêt, démarrez le serveur RabbitMQ via la commande suivante: $./ rabbitmq-server ou plus simple encore via Windows Services. Vous pouvez également installer une interface web pour accéder RabbitMq (en anglais): https://cmatskas.com/getting-started-with-rabbitmq-on-windows/
- Effectuez les modifications de configuration dans le fichier application.properties de votre application Spring Boot sous src/main/resources pour refléter la configuration de RabbitMQ. La configuration suivante utilise le port, le nom d'utilisateur et le mot de passe par défaut de RabbitMQ:
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest - Ajoutez un composant d'expéditeur de message et une file d'attente nommée TestQ du type org.springframework.amqp.core.Queue au fichier Application.java sous src/main/java. RabbitMessagingTemplate est un moyen pratique d'envoyer des messages. L'avantage de Spring Boot est que ce dernier fournira implicitement toutes les configurations standard pour envoyer des messages.
@Component class Sender { RabbitMessagingTemplate template; @Autowired Sender(RabbitMessagingTemplate template){ this.template = template; } @Bean Queue queue() { return new Queue("TestQ", false); } public void send(String message){ template.convertAndSend("TestQ", message); } }
@Component class Receiver { @RabbitListener(queues = "TestQ") public void processMessage(String content) { System.out.println(content); } }
@SpringBootApplication public class Application implements CommandLineRunner{ @Autowired Sender sender; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override public void run(String... args) throws Exception { sender.send("Hello Messaging..!!!"); } }
6. Exécutez l'application en tant qu'application Spring Boot (run as Spring boot app) et vérifiez la sortie. Le message suivant sera imprimé dans la console:
Hello Messaging..!!!
No comments:
Post a Comment