- spring cloud eureka.
- spring cloud ribbon.
- optional spring cloud zuul.
- optional spring cloud hystrix
use @EnableRibbonFavoriteZone to enable routing to a favorite zone.
use @EnableRibbonStrictMetadataMatcher to enable routing to servers that have the same context metadata.
use @EnableRibbonContextPropagation to enable desired http headers flowing between all your micro-services.
Eureka!
- We are able to test our micro-service without running all the application services only by adding our zone to http request header.
- We are able to deploy in multi region and let our clients (that have no knowledge of eureka, ribbon, zuul) choose the nearest zone.
maven
<dependency>
<groupId>com.github.enadim</groupId>
<artifactId>spring-cloud-ribbon-extensions</artifactId>
<version>1.0.0</version>
</dependency>
gradle
dependencies {
compile 'com.github.enadim:spring-cloud-ribbon-extensions:1.0.0'
}