/reservplat

Spring Cloud microservices with orchestration (Netflix stack)

Primary LanguageShell

reservplat

https://github.com/vincedgy/reservplat.git

My exploratory microservices plateform, following great presentation from the excellent Josh Long (https://github.com/joshlong)

Microservices with SpringBoot, SpringCloud etc..

The goal : Build a reservation platform using microservices : Sprinboot REST API, JPA, Web (MVC), H2 db, HATEAOS

But also a whole bunch of great technologies from SpringCloud and Netflix microservices stack (quite standards now)

References

SpringCloud Config server

SpringCloud config uses a REAL git repository (wether it is local or remote).

For this project repo is https://github.com/vincedgy/reservplat-config.git

more here : https://cloud.spring.io/spring-cloud-config/spring-cloud-config.html

!! Look at Vault integration wich brings crypto capabilities for secret content

Don't forget to refresh client microservices on config by committing configuration into git and then POST empty request to refresh :

curl -d {} "http://localhost:8000/resfresh"

Spring Boot CLI

https://github.com/spring-cloud/spring-cloud-cli

Unzip package of Spring CLI from here http://repo.spring.io/release/org/springframework/boot/spring-boot-cli/1.5.3.RELEASE/spring-boot-cli-1.5.3.RELEASE-bin.zip

Then install 'cloud' library : note : checkout the last release here https://github.com/spring-cloud/spring-cloud-cli/releases

$ spring install org.springframework.cloud:spring-cloud-cli:1.3.3.RELEASE

Service registration and discovery with Eureka

When microservices need to talk to each other we don't want to let them know where other microservices are (what host, what port, etc...), and DNS is a very bad choice in this case because of latency, cache etc...

Use @EnableDiscoveryClient in order to change from Eureka to another solution.

Edge services

Responsible for talking to the external worl (from the microservices platform perspective). It's edge services that talk to final clients of the services (mobile, car, refridgerators, TV, what you want...).

Admin with Spring Boot Admin

http://codecentric.github.io/spring-boot-admin/1.5.0/