/poc-event-driven-microservice-edge-kafka-spring-cloud

Vers une architecture Event Driven Microservice avec Kafka Spring Cloud ... Kafka, Spring-boot, Microservice, Spring-cloud, Gateway, Load-balancer, Hystrix, Ribbon, Eureka, Zipkin, Actuator, Cloud-config, Sleuth, Openfeign

Primary LanguageJavaApache License 2.0Apache-2.0

Exercice Promo 10000codeurs 2024

Fall Omar Jovy Nedved Monka - Kanda Warda Boubaker Oumou Sow Vianney YOVO Sidonie DJUISSI FOHOUO Fabrice NANKAM VODOUNNOU Nicodème Sèlomin Moussa TAMBA ABOUBAKAR Hothia DIAO FatimaDianfou Aicha BENJDIR Cheick Oumar DIAKITE AMOUSSOUGBO Anani Serge Ramiro Kaffo Rodrigue Nzomo Jalil Fonda Yvon MENSAH Nsengimana François Quirin DOSSOU Carles De Souza Djimo Gassama

Exercice Promo 10000codeurs 2023

Joel Aholou Borel Njeunkwe Jean pierre momo Serges YAMAKO Vignon DOSSOU Abderrahmane ZAHI Paul MBUYI Farimata DOUARE Jean Apotre AIKOU Farimata DOUARE Latifatou IYALI paul damien LEKEUFACK TAMEZE OUFFOUET Patrick

poc-event-driven-microservice-edge-kafka-spring-cloud

https://www.slideshare.net/fouomene/migration-dune-architecture-microservice-vers-une-architecture-eventdriven-microservice-avec-kafka

Architecture alt text

alt text

Mise en oeuvre de l'architechture Event-Driven Microservice avec Apache Kafka, Spring Cloud et ses Edge Microservices, pour une communicaion service to broker à la place de Service to Service:

  • Spring Cloud Bootstrap (e.g. Bootstrap context and @RefreshScope)

  • Spring Cloud Config : Se positionne comme serveur de distribution des fichiers de configuration.

    • Config Server
    • Config Client
  • Spring Cloud Netflix

    • Discovery : Permet de découvrir les Microservice sur notre serveur. C’est aussi un outil clé pour la gestion des Microservices.
      • Eureka Server
      • Eureka Client
    • Load Balancer
      • Ribbon (config et dependance commenté) : Équilibrer les requêtes entre plusieurs instances pour éviter une surcharge d’un serveur
    • Circuit Breaker : Définit un ensemble de seuils qui, une fois dépassés, arrêteront l'exécution d'un bloc de code.
      • Hystrix : Une API pour la résilience d’applications.
  • Spring Cloud Routing

    • Gateway : Le point d’entrée unique pour les API et Microservices.
    • OpenFeign : Faire communiquer (synchrone) les microservices grâce à Feign.
  • Spring Cloud Load Balancer : Équilibrer les requêtes entre plusieurs instances pour éviter une surcharge d’un serveur

  • Spring Cloud Observability

    • Sleuth : Permet de donner des ID uniques à chaque requête, c'est
    • Zipkin Client : permet exposer les traces vers Zipkin Server.
  • Spring Boot Actuator : expose une API qui donne des informations sur le microservice concerné, mais ne propose pas d'interface graphique.

  • Zipkin Server : permet de tracer les requêtes de service en service uniquement si ces services intègrent ses dépendances.

Step 1 : Télécharger et Démarrer Zipkin Server

curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar

Step 2 : Télécharger kafka

Download https://kafka.apache.org the latest Kafka release and extract it:

$tar -xzf kafka_2.13-3.2.0.tgz

$cd kafka_2.13-3.2.0

Step 3 : Démarrer kafka

NOTE: Your local environment must have Java 8+ installed.

Run the following commands in order to start all services in the correct order:

  • Start the ZooKeeper service

-Note: Soon, ZooKeeper will no longer be required by Apache Kafka.

$bin/zookeeper-server-start.sh config/zookeeper.properties

or window

$.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

Open another terminal session and run:

  • Start the Kafka broker service

    $bin/kafka-server-start.sh config/server.properties

or window

$.\bin\windows\kafka-server-start.bat .\config\server.properties

Once all services have successfully launched, you will have a basic Kafka environment running and ready to use.

Step 4 : Démarrer les différents microservices.

mvn spring-boot:run

Ordre recommandé

  • config-server
  • eureka-server
  • springcloudgateway-server
  • microservice-produits (deux instances Ex port 8001,8011)
  • microservice-commandes-consumer
  • microservice-paiement-producer
  • clientui

Eureka Server alt text

Zipkin Server alt text alt text

Microservice ClientUI alt text