You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adrian Cole
20f3721497
|
9 years ago | |
---|---|---|
.. | ||
src | 9 years ago | |
README.md | ||
build.gradle |
README.md
Hystrix
This module wraps Feign's http requests in Hystrix, which enables the Circuit Breaker Pattern.
To use Hystrix with Feign, add the Hystrix module to your classpath. Then, configure Feign to use the HystrixInvocationHandler
:
GitHub github = HystrixFeign.builder()
.target(GitHub.class, "https://api.github.com");
Methods that do not return HystrixCommand
are still wrapped in a HystrixCommand
, but execute()
is automatically called for you.
For asynchronous or reactive use, return HystrixCommand<YourType>
rather than just YourType
.
interface YourApi {
@RequestLine("GET /yourtype/{id}")
HystrixCommand<YourType> getYourType(@Param("id") String id);
@RequestLine("GET /yourtype/{id}")
YourType getYourTypeSynchronous(@Param("id") String id);
}
YourApi api = HystrixFeign.builder()
.target(YourApi.class, "https://example.com");
// for reactive
api.getYourType("a").toObservable();
// for asynchronous
api.getYourType("a").queue();
// for synchronous
api.getYourType("a").execute();
// or to apply hystrix to existing feign methods.
api.getYourTypeSynchronous("a");