|
@@ -42,7 +42,7 @@ Les microservices communiquent entre eux pour le fonctionnement de l'application
|
42
|
42
|
* **user-microservice** a besoin de **address-microservice** pour persister un utlisateur.
|
43
|
43
|
- **project-microservice** a de **user-microservice** et **company-microservice** pour périsiter un projet.
|
44
|
44
|
|
45
|
|
-Pour faire communiquer les microservices, nous utilisons le pattern **Spring Cloud OpenFeign**. On peut voir l'architechure Spring Cloud de l'application backend [ici](https://drive.google.com/file/d/1h3lWg0P7VCq8ne-zRsr9Bq56VfKE-dsK/view?usp=sharing).
|
|
45
|
+Pour faire communiquer les microservices, nous utilisons le pattern **Spring Cloud OpenFeign**. L'architechure d'enregistrement et de découverte des microservice de l'application backend peut se présenter ainsi: [architecture](https://drive.google.com/file/d/15pj4TvCu4DyqUZS3dLLRY7KKUgYpTBuZ/view?usp=sharing)
|
46
|
46
|
|
47
|
47
|
#### Pourquoi Spring Cloud OpenFeign plutôt que Spring Boot RestTemplate?
|
48
|
48
|
|
|
@@ -55,12 +55,12 @@ Spring Cloud OpenFeign présente plusieurs avantages:
|
55
|
55
|
1. Construction d'une image docker pour chaque microservice avec un simple fichier Dockerfile placé à la racine du dossier du microservice.
|
56
|
56
|
2. Lancement avec un fichier **docke-compose** de la stack des microservices composant toute l'application backend.
|
57
|
57
|
|
58
|
|
-### 1.4.1. Lancement de l'application backend
|
|
58
|
+### Lancement de l'application backend
|
59
|
59
|
1) Créer un répertoire que l'on nomme à son choix, **projet-microservices** par exemple.
|
60
|
60
|
|
61
|
61
|
2) Cloner le git suivant de l'application dans ce répertoire:
|
62
|
62
|
- Dans le terminal, se placer dans ce répetoire.
|
63
|
|
-- Saisir`git clone`: https://gitea.natan.fr/placidenduwayo/projects-management-microservices-backend.git.
|
|
63
|
+- Saisir`git clone`: https://gitea.natan.fr/placidenduwayo/projects-management-microservices-backend.git
|
64
|
64
|
|
65
|
65
|
Les microservices métiers, les microservices intermédiaires et application-deployment (le répertoire pour déployer l'application) sont téléchargés dans ce répertoire **projet-microservices**.
|
66
|
66
|
|
|
@@ -82,7 +82,7 @@ Après le build de l'application backend:
|
82
|
82
|
### 1.5. Services intermédiaires
|
83
|
83
|
Les services **eureka-discovery-server** et **spring-cloud-gateway-service** sont de simples applications.
|
84
|
84
|
- Le service spring-cloud-gateway-service n'expose aucun Endpoint.
|
85
|
|
-- Le service eureka-discovery-server expose un seul endepoint http://localhost:8761 pour explorer les microservices enregistrés
|
|
85
|
+- Le service eureka-discovery-server expose un seul endepoint http://localhost:8180 pour explorer les microservices enregistrés
|
86
|
86
|
|
87
|
87
|
### 1.5.1. eureka-discovery-server
|
88
|
88
|
Ce service joue le rôle de serveur d'annuaire des microservices. eureka-discovery-server est lancé en premier. Lorsqu'ils sont lancés, les microservices métiers et le service gateway s'enregistrent dans le serveur d'annuaire. Ils s'enregistrent par leur nom configuré dans leur fichier de configuration **application.properties**.
|
|
@@ -96,28 +96,28 @@ Le lien suivant présente la documentation de ce service d'annuaire [eureka serv
|
96
|
96
|
- Le service gateway va chercher dans le serveur d'annuaire (ici nous avons utilisé Eureka de Netflix) le nom du microservice que le client HTTP a spécifié dans sa requête.
|
97
|
97
|
- Si la gateway trouve le service demandé, le client peut commencer à consommer le microservice.
|
98
|
98
|
|
99
|
|
-La figure suivante présente l'architecture et le fonctionnement de l'application :![micrservices registration](https://drive.google.com/file/d/1h3lWg0P7VCq8ne-zRsr9Bq56VfKE-dsK/view?usp=sharing).
|
100
|
99
|
|
101
|
100
|
# 2. Partie frontend: application Angular
|
102
|
101
|
Le côté frontend est une application Angular (Angular 13). Le repository de cette application frontend peut être trouvé sur le lien suivant: [frontend](https://gitea.natan.fr/placidenduwayo/projects-management-microservices-frontend.git)
|
103
|
102
|
|
104
|
|
-Pour communiquer avec la partie backend, dans le fichier `environment.ts` d'Angular nous y configurons l'addresse du service gateway avec les noms des microservices pour la backend:
|
|
103
|
+Pour communiquer avec la partie backend, dans le fichier `environment.ts` d'Angular nous y configurons l'adresse du service gateway avec les noms des microservices pour la backend:
|
105
|
104
|
|
106
|
105
|
```
|
107
|
106
|
export const environment = {
|
108
|
|
- ADDRESSES_SERVER:"http://localhost:8888/ADDRESS-MICROSERVICE",
|
109
|
|
- USERS_SERVER:"http://localhost:8888/USER-MICROSERVICE",
|
110
|
|
- COMPANIES_SERVER:"http://localhost:8888/COMPANY-MICROSERVICE",
|
111
|
|
- PROJECTS_SERVER:"http://localhost:8888/PROJECT-MICROSERVICE"
|
|
107
|
+ ADDRESSES_SERVER:"http://localhost:8181/ADDRESS-MICROSERVICE",
|
|
108
|
+ USERS_SERVER:"http://localhost:8181/USER-MICROSERVICE",
|
|
109
|
+ COMPANIES_SERVER:"http://localhost:8181/COMPANY-MICROSERVICE",
|
|
110
|
+ PROJECTS_SERVER:"http://localhost:8181/PROJECT-MICROSERVICE"
|
112
|
111
|
|
113
|
112
|
};
|
114
|
113
|
```
|
115
|
114
|
|
116
|
115
|
# 3. Lancement de l'application fullstack:
|
117
|
|
-- cloner la partie backend: `git clone` https://gitea.natan.fr/placidenduwayo/projects-management-microservices-backend.git
|
118
|
|
- - suivre la procédure décrite plus haut et lancer la partie backend
|
|
116
|
+## 3.1. La partie backend
|
|
117
|
+- Cloner la partie backend: `git clone` https://gitea.natan.fr/placidenduwayo/projects-management-microservices-backend.git
|
|
118
|
+- Lancer l'application backend en suivant la procédure décrite au sous titre **1.4 Déploiement des microservices**.
|
|
119
|
+## 3.2. La partie frontend
|
119
|
120
|
- cloner la partie frontend: `git clone` https://gitea.natan.fr/placidenduwayo/projects-management-microservices-frontend.git
|
120
|
|
- - Installer les dépendances nécessaires pour la gestion du store et des effects
|
121
|
|
- - Installer le framework Primeng pour la gestion des styles
|
122
|
|
- - Lancer la partie frontend: npm start
|
123
|
|
-
|
|
121
|
+- Suivre la procédure telle que détaillée dans le README du repository
|
|
122
|
+- Aller sur http://localhost:4200
|
|
123
|
+ - ![application front](https://drive.google.com/file/d/1CfXun5Sov_q5f045fJGCv0lk2XUq7_DN/view?usp=sharing)
|