Spring Cloud Netflix provides Netflix OSS integrations for Spring Boot apps through autoconfiguration and binding to the Spring Environment and other Spring programming model idioms. With a few simple annotations you can quickly enable and configure the common patterns inside your application and build large distributed systems with battle-tested Netflix components. The patterns provided include Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) and Client Side Load Balancing (Ribbon)..
Features
Spring Cloud Netflix features:
-
Service Discovery: Eureka instances can be registered and clients can discover the instances using Spring-managed beans
-
Service Discovery: an embedded Eureka server can be created with declarative Java configuration
-
Circuit Breaker: Hystrix clients can be built with a simple annotation-driven method decorator
-
Circuit Breaker: embedded Hystrix dashboard with declarative Java configuration
-
Declarative REST Client: Feign creates a dynamic implementation of an interface decorated with JAX-RS or Spring MVC annotations
-
Client Side Load Balancer: Ribbon
-
External Configuration: a bridge from the Spring Environment to Archaius (enables native configuration of Netflix components using Spring Boot conventions)
-
Router and Filter: automatic registration of Zuul filters, and a simple convention over configuration approach to reverse proxy creation
Getting Started
As long as Spring Cloud Netflix and Eureka Core are on the
classpath any Spring Boot application with @EnableEurekaClient
will try to contact a Eureka
server on http://localhost:8761
(the default value of
eureka.client.serviceUrl.defaultZone
):
@SpringBootApplication
@EnableEurekaClient
@RestController
public class Application {
@RequestMapping("/")
public String home() {
return "Hello World";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
To run your own server use the spring-cloud-starter-netflix-eureka-server
dependency and @EnableEurekaServer
.