yamakoserge / 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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Exercice

Joel Aholou Borel Njeunkwe

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

About

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

License:Apache License 2.0


Languages

Language:Java 97.6%Language:Dockerfile 2.4%