IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre à développer une application basée sur une architecture microservices avec Docker
Un tutoriel de Mickael Baron

Le , par Mickael Baron

9PARTAGES

7  0 
Bonjour,

Je vous propose un tutoriel sous la forme d'exercices afin d'apprendre à construire une application en respectant une architecture à base de microservices. Nous utiliserons pour cela plusieurs technologies : la bibliothèque KumuluzEE pour packager et exécuter une application Java EE en ligne de commande, 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 asynchrone et finalement, l'outil Docker Compose pour la composition des microservices.

La grande majorité du code contenu dans les microservices vous sera donnée comme support. En effet, ces exercices se focaliseront principalement sur les problématiques de déploiement.

L'adresse du tutoriel est la suivante : http://mbaron.developpez.com/tutorie...cation-docker/

Profitez de cet espace pour donner vos impressions ou poser vos questions.

Mickael

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Benoid
Candidat au Club https://www.developpez.com
Le 12/04/2016 à 23:28
Merci pour ce petit tutoriel fort sympathique et très bien fait qui permet de découvrir les architectures microservices mais également de nombreuses autres techno.

Je me permets de relever une petite coquille dans le chapitre "V-C. Étapes à suivre", la variable d'environnement à définir est REDISALIAS_PORT et non REDISALIAS_HOST.
1  0 
Avatar de Mickael Baron
Rédacteur https://www.developpez.com
Le 14/04/2016 à 10:36
Salut,

Merci pour le retour positif.

Je viens de corriger. Un résidu d'une ancienne version.

Mickael
1  0 
Avatar de Mickael Baron
Rédacteur https://www.developpez.com
Le 18/11/2019 à 9:54
Bonjour,

Dans le premier cas, vision "Développement", le port du conteneur Redis a été exposé afin de pouvoir tester son code Java avec le serveur Redis. Cela se passe comme si Redis avait été installé sans Docker.

Dans le second cas, c'est plus une vision Production. Dans une architecture microservice, il faut pouvoir isoler les services. C'est la raison d'avoir créé un sous-réseau helloworldnetwork. Tous les conteneurs appartenant à ce sous réseau peuvent communiquer entre eux. Par conséquent, plus besoin d'exposer le port 6379 puisque le conteneur Java et le conteneur Redis font partie du même sous réseau. Par ailleurs, est-ce qu'il y a une utilité d'exposer le port 6379 en production, la réponse est non.

Mickael
1  0 
Avatar de aillet
Nouveau Candidat au Club https://www.developpez.com
Le 22/06/2016 à 19:26
Bonjour,

dans les sources du projet, la classe JedisFactory n'est pas en phase avec votre tutoriel. La classe semble manipuler une variable d'environnement "REDIS_HOST" dans les sources et votre tutoriel parle de la variable d'environnement "REDISALIAS_PORT", ce qui permet juste de choisir l'adresse IP du Redis et non son numéro de port.

Code Java : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
	... 
        private static final String REDIS_HOST_ENV_KEY = "REDIS_HOST"; 
        ... 
	private String getRedisHost() { 
		String redisHost = System.getenv(REDIS_HOST_ENV_KEY); 
		if (redisHost == null || redisHost.isEmpty()) { 
			return "localhost"; 
 		} else { 
 			return redisHost; 
 		} 
	} 
        ...

De ce fait, on ne peut renseigner le numéro du port Redis et l’exécution du tutoriel génère une erreur de connexion.

aillet
0  0 
Avatar de Mickael Baron
Rédacteur https://www.developpez.com
Le 23/06/2016 à 9:34
Salut,

Merci

Je n'avais impacté la solution.

Les sources à jour sont sur mon github (voir lien en bas du tutoriel)

Mickael
0  0 
Avatar de jfmauro
Nouveau Candidat au Club https://www.developpez.com
Le 16/11/2019 à 11:31
Bonjour,

D'abord merci pour votre cours.

A l'étape 3, la création du conteneur redis se fait comme suit en utilisant le port 6379 et ce pour assurer la communication entre ce projet (pas encore isolé dans un conteneur Docker) et le microservice Redis la solution est de rediriger le port 6379 de l'hôte vers le port 6379 du conteneur (le port par défaut de Redis).

Code : Sélectionner tout
docker run --name redis -v $(pwd)/data:/data -p 6379:6379 -d redis redis-server --appendonly yes

À l'étape 6, la création du conteneur redis se fait sans mentionner de port :

Code : Sélectionner tout
docker run --name redis -d --network helloworldnetwork -v $(pwd)/data:/data redis redis-server --appendonly yes

Pourriez-vous m'expliquer pourquoi?

D'avance merci.

JF
0  0 
Avatar de ulrich99
Candidat au Club https://www.developpez.com
Le 16/08/2021 à 16:54
salut, s'il vous plait j'ai un problème au niveau de l'exercice 3 ou il faut ajouter une variable d'environnement. je ne sais pas comment le faire.
je serais ravis si vous pouvez m'aider.
0  0 
Avatar de Mickael Baron
Rédacteur https://www.developpez.com
Le 24/08/2021 à 22:14
Bonjour,

Sous Eclipse, depuis la configuration d'exécution il y a un onglet Environment. Voir capture d'écran
0  0