Step-by-step guide to build 12-Factor cloud native apps with Spring Cloud, Netflix OSS, Grails and AngularJS
Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.
- Distributed/versioned configuration
- Service registration and discovery
- Service-to-service calls
- Load balancing
- Circuit Breakers
- Global locks
- Leadership election and cluster state
- Distributed messaging
- Netflix Eureka: Service registry & discovery
- Netflix Hystrix: Resiliency - Circuit breaker, Fallback, Concurrency, RxJava
- Netflix Hystrix Dashboard: Monitoring and metrics dashboard
- Netflix Turbine: Aggregate hystrix streams
- Netflix Ribbon: Client-side load-balancing
- Netflix Zuul: Reverse proxy for API gateway
- Spring Cloud Config: Centralized configuration
- Spring Cloud Bus: PubSub messaging over RabbitMQ
- Spring Cloud Security: SSO for APIs - OAuth/JWT
- Logging: Centralized logging - Logstash, ES, Kibana (LEK)
- Swagger: API Docs
Start on Local Machine
Starting Order > Kafka -> Euraka -> Config -> (Producer, GORM, …), -> (Zuul, Turbine, Hystrix Dashboard)
start following two apps, one at a time as they use same port.
Starting Tweetable App
cd tweetable spring run .
Starting Mongo Example
cd mongo spring run .
Full-stack cloud native examples
Starting Eureka Server
cd eureka spring run .
Starting Config Server
cd config spring run .
Start up Producer Service
cd producer spring run .
Starting Gorm Service
cd gorm spring run .
Starting Monitoring App
cd hystrix-dashboard spring run .
Starting mybatis Service
Follow instructions mybatis
Starting Aggregate Service
Follow instructions aggregator
Starting API Gateway
cd zuul spring run .
Starting Blog App