KhaoulaElmajni / AP-micro-service-with-centralized-configuration-and-consul-discovery-service

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AP-micro-service-with-centralized-configuration-and-consul-discovery-service🎓💻

1.Présentation de l'activité pratique

  • CrĂ©er une application de e-commerce basĂ©e sur les micro services : 1. Consul Discovery

     2. Spring Cloud Config
     
     3. Spring Cloud Gateway
     
     4. Customer-service
     
     5. Inventory Service
     
     6. Order Service
     
     7. Consul Config (Billing Service)
     
     8. Vault (Billing Service)
     
     9. Frontend Web avec Angular
    
Entités et règles de gestion : 🏷️

L’architecture de cette application devra gérer 3 entités. Les entités utilisées dans l’application sont :


Une entité "Customer" qui comporte les propriétés suivantes :

  • id
  • email
  • nom
    public class Customer {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;
}

Une entité "Produit" qui comporte les propriétés suivantes :

  • id
  • quantity
  • nom
  • price
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private double price;
    private int quantity;
}

Une entité "Order" qui comporte les propriétés suivantes :

  • id
  • liste des produits
  • totalPrice
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Table(name = "orders")
public class Order {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private Date createdAt;
    private OrderStatus status;
    private Long customerId;

    @Transient
    private Customer customer;

    @OneToMany(mappedBy = "order")
    private List<ProductItem> productItems;

    public double getTotal(){
        return productItems.stream()
                .mapToDouble(ProductItem::getTotal).sum();
    }
}

2.Architecture de l'activité pratique


Le service "customer-service"


Le service "inventory-service"


Le service "gateway-service"

//application

Le service de discovery "Consul"

Le service "order-service"

La configuration avec VAULT

*aprés la configuration par consul config et vault config

ZipKin + Sleuth

Frontend avec Angular

[name=elmajnikhaoula]La liste des produits

[name=elmajnikhaoula]La liste des clients

[name=elmajnikhaoula]La liste des factures par client

[name=elmajnikhaoula]Les détails d'une facture d'un client

3.Les Technologies utilisées

1.Java

  • * Java est le langage de choix pour crĂ©er des applications Ă  l'aide de code managĂ© qui peut s'exĂ©cuter sur des appareils mobiles.

voir Ă©galement Ă  propos JAVAđź”—

2.Spring Data JPA

  • Spring Data JPA, qui fait partie de la grande famille Spring Data, facilite la mise en Ĺ“uvre de rĂ©fĂ©rentiels basĂ©s sur JPA. Ce module traite de la prise en charge amĂ©liorĂ©e des couches d'accès aux donnĂ©es basĂ©es sur JPA. Il facilite la crĂ©ation d'applications alimentĂ©es par Spring qui utilisent des technologies d'accès aux donnĂ©es.

*voir Ă©galement Ă  propos de Spring Data JPA đź”—

3.Spring Cloud Open Feign

  • Ce projet fournit des intĂ©grations OpenFeign pour les applications Spring Boot via la configuration automatique et la liaison Ă  l'environnement Spring et Ă  d'autres idiomes de modèle de programmation Spring.

*voir Ă©galement Ă  propos de Spring Cloud Open Feign đź”—

4.Spring Cloud Gateway

  • Ce projet fournit une bibliothèque pour crĂ©er une passerelle API au-dessus de Spring WebFlux. Spring Cloud Gateway vise Ă  fournir un moyen simple mais efficace d'acheminer vers les API et de leur fournir des prĂ©occupations transversales telles que : la sĂ©curitĂ©, la surveillance/les mĂ©triques et la rĂ©silience.

*voir Ă©galement Ă  propos de Spring Cloud Gateway đź”—

5.Swagger Open API

  • Swagger est une suite d'outils pour les dĂ©veloppeurs d'API de SmartBear Software et une ancienne spĂ©cification sur laquelle est basĂ©e la spĂ©cification OpenAPI.

*voir Ă©galement Ă  propos de Swagger đź”—

6.Docker Compose

  • Compose est un outil permettant de dĂ©finir et d'exĂ©cuter des applications Docker multi-conteneurs. Avec Compose, vous utilisez un fichier YAML pour configurer les services de votre application.

*voir Ă©galement Ă  propos de Docker Compose đź”—

7.Consul

  • Consul est un outil multi-rĂ©seaux qui offre une solution de maillage de services complète qui rĂ©sout les dĂ©fis de mise en rĂ©seau et de sĂ©curitĂ© liĂ©s Ă  l'exploitation de microservices et d'infrastructures cloud (multi-cloud et cloud hybride). Cette documentation couvre les principaux concepts de Consul, les problèmes qu'il peut rĂ©soudre et contient un dĂ©marrage rapide pour l'utilisation de Consul.

*voir Ă©galement Ă  propos de Consul đź”—

8.Vault

  • Vault est un système de gestion des secrets et du chiffrement basĂ© sur l'identitĂ©. Cette documentation couvre les principaux concepts de Vault, les problèmes qu'il peut rĂ©soudre et contient un dĂ©marrage rapide pour l'utilisation de Vault.

*voir Ă©galement Ă  propos de Vault đź”—

9.Zipkin

  • Zipkin est un système de traçage distribuĂ©. Il permet de collecter les donnĂ©es de synchronisation nĂ©cessaires pour rĂ©soudre les problèmes de latence dans les architectures de service. Les fonctionnalitĂ©s incluent Ă  la fois la collecte et la recherche de ces donnĂ©es.

*voir Ă©galement Ă  propos de Zipkin đź”—

10.Spring Cloud Sleuth

  • Spring Cloud Sleuth fournit la configuration automatique de Spring Boot pour le traçage distribuĂ©. Sleuth configure tout ce dont vous avez besoin pour commencer. Cela inclut oĂą les donnĂ©es de trace (spans) sont signalĂ©es, combien de traces conserver (Ă©chantillonnage), si des champs distants (bagages) sont envoyĂ©s et quelles bibliothèques sont tracĂ©es. Plus prĂ©cisĂ©ment, Spring Cloud Sleuth…

*voir Ă©galement Ă  propos de Spring Cloud Sleuth đź”—

11.Angular

  • Angular est un cadre de conception d'applications et une plate-forme de dĂ©veloppement permettant de crĂ©er des applications d'une seule page efficaces et sophistiquĂ©es.

*voir Ă©galement Ă  propos de Angular đź”—

  • Enfin nous tenons Ă  remercier le seul et unique, notre professeur Mr YOUSFI Mohamed Docteur & professeur Ă  l'ENSET MEDIA pour son soutien et son encouragement envers nous, aussi pour nous avoir donnĂ© cette opportunitĂ© d'amĂ©liorer nos compĂ©tences et de connaĂ®tre les nouvelles technologies comme celles qui nous avons travaillĂ©.

voir Ă©galement Ă  propos Mr YOUSSFI Mohamed

Created by :[name=ELMAJNI KHAOULA] [time=Mon,2022,11,01][color=#EF0101] voir Ă©galement Ă  propos de moi ELMAJNI Khaoula

About

License:MIT License


Languages

Language:Java 54.7%Language:TypeScript 30.3%Language:HTML 11.4%Language:JavaScript 3.4%Language:CSS 0.2%