63 lines
2.2 KiB
Markdown
63 lines
2.2 KiB
Markdown
Ths project provides Netflix OSS integrations for Spring Boot apps through autoconfiguration
|
|
and binding to the Spring Environment and other Spring programming model idioms.
|
|
|
|
# Eureka Clients
|
|
|
|
Example eureka client:
|
|
|
|
```
|
|
@Configuration
|
|
@ComponentScan
|
|
@EnableAutoConfiguration
|
|
@RestController
|
|
public class Application {
|
|
|
|
@RequestMapping("/")
|
|
public String home() {
|
|
return "Hello world";
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
new SpringApplicationBuilder(Application.class).web(true).run(args);
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
(i.e. utterly normal Spring Boot app). Configuration is required to locate the Eureka server. Example:
|
|
|
|
```
|
|
eureka:
|
|
client:
|
|
serviceUrl:
|
|
defaultZone: http://localhost:8080/v2/
|
|
default.defaultZone: http://localhost:8080/v2/
|
|
```
|
|
|
|
The default application name, virtual host and non-secure port are taken from the `Environment` is
|
|
`${spring.application.name}`, `${spring.application.name}.mydomain.net` and `${server.port}` respectively.
|
|
|
|
# TODO List
|
|
|
|
- [x] Example front end app (currently in sandbox)
|
|
- [x] Example back end service (currently in sandbox)
|
|
- [x] Use platform config
|
|
- [x] Hystrix integration (hystrix-javanica)
|
|
- [x] Feign use spring message converters
|
|
- [x] Ribbon (static server list)
|
|
- [x] Eureka boot app (Service registration)
|
|
- [x] Eureka (apache -> tomcat) see https://github.com/cfregly/fluxcapacitor/wiki/NetflixOSS-FAQ#eureka-service-discovery-load-balancer and https://groups.google.com/forum/?fromgroups#!topic/eureka_netflix/g3p2r7gHnN0
|
|
- [x] Archaius bridge to spring environment
|
|
- [x] Ribbon (Client side load balancing) (Eureka integration)
|
|
- [x] Remove need for *-eureka.properties
|
|
- [ ] Use spring boot values as defaults where appropriate
|
|
- [x] Synchronous removal of service from eureka on shutdown
|
|
- [x] Refresh log levels dynamically
|
|
- [x] Router (Zuul) integrated using hystrix/ribbon/eureka
|
|
- [ ] Better observable example
|
|
- [ ] Distributed refresh environment via platform bus
|
|
- [x] Metrics aggregation (turbine)
|
|
- [x] Use Eureka for instance discovery rather than static list see https://github.com/Netflix/Turbine/blob/master/turbine-contrib/src/main/java/com/netflix/turbine/discovery/EurekaInstanceDiscovery.java
|
|
- [ ] Configure InstanceDiscovery.impl using auto config/config props
|