βMust Haveβ Enhance your micro-service testing, maintenance & overall development productivity.
Spring Cloud Ribbon Extensions is a set of load balancing rules that chooses which server to target. It comes with handy features for easy integration, configuration and customization.
- java 8
- spring boot 1.5.x or newer
- spring cloud ribbon.
- spring cloud Daslton-SR3 or newer.
- spring cloud eureka.
- spring cloud feign.
- spring cloud zuul.
- spring cloud hystrix.
- spring and java executors.
- spring stomp.
- jms.
@EnableRibbonZoneAffinity: Enables routing to the same zone: see the tests for concrete usage and configurations.
Designed mainly for micro-services that should calls others in the same zone.
@EnableRibbonFavoriteZone: Enables routing to a favorite zone: see the tests for concrete usage and configurations.
Designed mainly for testing a micro-service among an existing micro-service architecture without disruption. This is the feature that triggered this project.
@EnableRibbonStrictMetadataMatcher: Enables routing to servers that have a set of metadata: see the tests for concrete usage and configurations.
Designed to target a specific micro-service that holds a point to point connection with an external system (like FIX,...)
Requires Eureka.
@EnableRibbonDynamicMetadataMatcher: Enables routing against a dynamic key: see the tests for concrete usage and configurations.
Designed to target a specific micro-services that holds multiple point to point connections with many external systems (like FIX,...)
Requires Eureka.
@EnableContextPropagation: Enables sharing the execution context through all the micro-services: see the tests for concrete usage and configurations.
Designed to propagate the execution context across the micro-services architecture.
What does it support:
- Transport: http, jms, stomp.
- Async: java, spring, Hystrix.
- Zuul
Eureka:exclamation: Let's enter a world of easy development and testing with micro-service architecture.
- Developers are able to deploy & debug their own micro-service and get back any request they have initiated disregarding the entry point and without being annoyed by the requests they have not initiated.
- Deploying in multi region-and let our clients (that have no knowledge of eureka, ribbon, zuul) choose the zone they prefer to target.
- And other things that I have not thought about...
maven
<dependency>
<groupId>com.github.enadim</groupId>
<artifactId>spring-cloud-ribbon-extensions</artifactId>
<version>1.4.5</version>
</dependency>
gradle
dependencies {
compile 'com.github.enadim:spring-cloud-ribbon-extensions:1.4.5'
}
Any help is welcome. π