Skip to content

hiteshjoshi1/spring-boot-angular2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

83da325 · Oct 21, 2017

History

12 Commits
Oct 21, 2017
Sep 26, 2017
Oct 21, 2017
Oct 14, 2017
Oct 21, 2017
Jun 4, 2017
Oct 21, 2017
Jun 27, 2017
Oct 21, 2017
Oct 21, 2017

Repository files navigation

Spring Boot - Microservices - Netflix Eureka Server and client, Swagger, ZuulProxy

  • Started this project as learning resource for Spring Boot. Integrated Spring Boot with Angular 2 SPA.
  • Started exploring Service Discovery - Netflix Eureka Server and Eureka Clients
  • Started exploring API Edge Gateway - Zuul Proxy
  • Started exploring API documentation - Swagger 2

Learning objectives : Achieved -

  • Angular 2
  • Spring Boot
  • Spring boot integrated with Angular2
  • Microservices API that do not go down with Eureka Server and client
  • Zuul Proxy, Ribbon
  • Swagger

Learning Objectives Pending -

  • Open API
  • Loopback with NodeJs
  • Distributed Caching - Redis and Memacache
  • Contanerized Micro services

Basic Architecture Diagram


Child Web Project has a dependency on the Client Project and by default opens it index.html.

It uses https://github.com/eirslett/frontend-maven-plugin to download Node,NPM,install , and run the front end build lifecycle.

Uses In memory DB for Data persistence. Has the complete Heroes App , official starter tutorial for Angular2 implemented.


Packaging --- mvn clean package

Start individual applications -

Starting the Eureka Server java -jar serviceRegistration/target/serviceRegistration-0.0.1-SNAPSHOT.war

Eureka Endpoint - http://localhost:1111/

Start the individual micro applications

java -jar challengesWeb/target/challengesWeb-0.0.1-SNAPSHOT.war

http://localhost:2222/

Start the same application in the same JVM different port Example - ava -jar target/app.jar --server.port=3331

Basically to override any spring boot properties use -- followed by Spring boot property name seprate with .

java -jar challengesWeb/target/challengesWeb-0.0.1-SNAPSHOT.war --server.port=3331

Your Microservice should be up at http://localhost:3331/api/challenges

Starting the Heroes Application

java -jar heroWeb/target/heroesWeb-0.0.1-SNAPSHOT.war

Your other microservice should be up at http://localhost:2222/heroes

Replicated Heroes Micro Application

java -jar heroWeb/target/heroesWeb-0.0.1-SNAPSHOT.war --server.port=2223

Replicate Microservice should be up at http://localhost:2223/heroes

Starting the zuul Proxy

java -jar zuulGateway/target/zuulGateway-0.0.1-SNAPSHOT.jar

Deployed at port 5555

You should be able to access your API using the Zuul gateway

Heroes API via proxy - [Secure end point- basic security , User Name - user. Password - password ] http://localhost:5555/heroes-service/heroes

Challenges API via proxy - http://localhost:5555/challenges-service/api/challenges

Swagger Documentation- http://localhost:2222/swagger-ui.html#/

http://localhost:3333/swagger-ui.html#/