/spring-microservices

Building microservice-based applications using Java and the Spring platform.

Primary LanguageJava

Spring Microservices

The goal of this project is to learn how to build microservice-based applications. I opted for Java due to the rich ecosystem offered by Spring. For this project I followed the book Spring Microservices in Action.

Below you'll find a listing of all the directories / services and what they do:

Service Description
common Shared library used by all the microservices for infrastructure-style code.
configserver The configuration server uses Spring Cloud Config to provide externalized configuration in the distributed system of microservices.
config Contains all the configuration files used by the configserver.
eurekaserver This service allows for Service Registration and Discovery using Netflix Eureka.
licenses This service manages licenses of various organizations. It communicates with the organization service to obtain data from the organizations.
organizations This service manages all the organizations.
zuulserver This service acts as a API Gateway using Netflix Zuul. Zuul interacts with the Eureka server to discover services in the distributed system. It's also the place where cross-cutting concerns are organized, such as setting correlation ID's for distributed tracing and authentication.
authentication This service is responsible for authentication and authorization of users using Oauth2.
zipkinserver Provides a Zipkin service for distributed tracing together with Spring Cloud Sleuth

To run all of the services create a package for each of them and then run:

$ docker-compose up -d

I've used Confluent's images for their Kafka platform. You can access the Control Panel to manage your Kafka clusters by navigating to http://0.0.0.0:9021.