Skip to content
L'objectif de cette série d'exercices est d'apprendre à construire une application en respectant une architecture à base de microservices en se focalisant sur le langage Java.
Java JavaScript HTML CSS Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
javamicroservices-tutorial-exercice1
javamicroservices-tutorial-exercice2
javamicroservices-tutorial-exercice3
javamicroservices-tutorial-exercice4
javamicroservices-tutorial-exercice5
javamicroservices-tutorial-exercice6
javamicroservices-tutorial-exercice7
workspace
.gitignore
README.md

README.md

JavaMicroservices Tutoriel

L'objectif de cette série d'exercices est d'apprendre à construire une application en respectant une architecture à base de microservices en se focalisant sur le langage Java.

Nous utiliserons pour cela plusieurs technologies :

  • la bibliothèque KumuluzEE pour packager et exécuter une application microservice respectant la spécification MicroProfile ;
  • l'outil Docker pour l'isolation des microservices ;
  • la bibliothèque et le serveur RabbitMQ pour la gestion d'un bus d'événements afin que les microservices communiquent de manière asyncrhone ;
  • l'outil Docker Compose pour la composition des microservices.

La grande majorité du code contenu dans les microservices vous sera donné comme support dans le répertoire workspace. En effet, ces exercices se focaliseront principalement sur les problématiques de déploiement et non sur l’aspect développement.

Dans la suite, on appelle « microservice », un programme qui implémente une fonctionnalité dans un langage donné (par exemple Java) et est isolé dans un conteneur Docker.

Buts pédagogiques : développer un microservice avec le langage Java et la spécification MicroProfile, télécharger une image Docker, créer une image Docker, créer un conteneur Docker, faire communiquer plusieurs conteneurs Docker, mettre en place un bus d'événements, composer des microservices avec Docker Compose.

Ce dépôt est utilisé dans le cadre d'un cours sur les architectures orientées services que je dispense à l'ISAE-ENSMA et à l'Université de Poitiers en français. Tous les supports de cours et tutoriaux sont disponibles sur ma page Developpez.com : https://mbaron.developpez.com.

Prérequis logiciels

Avant de démarrer cette série d'exercices, veuillez préparer votre environnement de développement en installant les outils suivants :

Présentation de l'étude de cas

L'étude de cas utilisée est une application permettant de diffuser des messages « HelloWorld ». Elle fournit une interface web pour la saisie et pour la consultation des messages (voir figure ci-dessous).

Application HelloWorld

Sur le schéma proposé sur la figure ci-dessous, nous détaillons la décomposition en microservices de cette application. L'architecture dispose de sept microservices.

  • Le microservice Web (contenu dans le projet helloworldwebmicroservice) fournit à l'utilisateur une interface web. La technologie utilisée sera du HTML/JavaScript pour le client et NodeJS pour créer un petit serveur web.
  • Le microservice Rest (contenu dans le projet helloworldrestmicroservice) a pour rôle de fournir une API de type service web pour le microservice Web. Lors de la réception d'un message « HelloWorld » celui-ci est envoyé au microservice Redis à des fins de stockage. Il publie également un événement vers le microservice RabbitMQ.
  • Le microservice Redis fournit un serveur Redis pour le stockage des messages « HelloWorld ».
  • Le microservice RabbitMQ fournit un bus d'événements basé sur RabbitMQ.
  • Le microservice Log (contenu dans le projet helloworldlogmicroservice) s'abonne au bus d'événement et affiche sur la sortie console les événements envoyés.
  • Les microservices Email et Twitter s'abonnent au bus d'événement et envoient respectivement un email ou un « Tweet ». Ces deux microservices ne seront pas traités.

Schéma de l'Application HelloWorld

Ressources et remerciements

Retrouver les précédentes leçons :

Pour aller plus loin, vous pouvez consulter les ressources suivantes :

You can’t perform that action at this time.