ReyClient注解详解

ReyClient是x7-reyc框架的注解,通过@ReyClient表示要发起http请求。 x7-reyc封装了httpClient和resilience4j, 注解里可以配置:

value: dns或IP (适合k8s环境下使用)

circuitBreaker: 熔断, ""表示通用配置,"foo", 表示名为foo的专用配置

retry: true表示启用重试,不配置默认为false

fallback: 配置降级类名, 如果配置了, 触发了降级,会去找方法名一样的降级方法,找不到则不执行降级处理

 

特别用法,在方法里增加参数 io.xream.x7.reyc.Url 可以优先替换掉注解里配置的url

 

代码示例:


@ReyClient(value = "127.0.0.1:8868", circuitBreaker = "", retry = true, fallback = TestFallback.class)
public interface TestServiceRemote {

@RequestMapping(value = "/xxx/reyc/test") //默认POST请求
Boolean test(CatRO ro, Url url); //参数Url可以优先替换掉注解里配置的url

@RequestMapping(value = "/xxx/time/test", method = RequestMethod.GET)
Boolean testTimeJack();
}


在启动列里要加上注解@EnableReyClient 

配置文件如下:

http.connectTimeout=15000
http.socketTimeout=60000
resilience4j.circuitbreaker.configs.default.wait-duration-in-open-state=60000
resilience4j.circuitbreaker.configs.default.ring-buffer-size-in-closed-state=100
resilience4j.circuitbreaker.configs.default.ring-buffer-size-in-half-open-state=10
resilience4j.circuitbreaker.configs.default.failure-rate-threshold=50
resilience4j.circuitbreaker.configs.default.event-consumer-buffer-size=100

resilience4j.ratelimiter.instances.boo.base-config=default
resilience4j.ratelimiter.configs.default.limit-for-period=10
resilience4j.ratelimiter.configs.default.limit-refresh-period=1s
resilience4j.ratelimiter.configs.default.timeout-duration=5000
resilience4j.ratelimiter.configs.default.eventConsumerBufferSize=100

 更详细的代码示例, 请参照xream.io官网

 

posted on 2019-05-09 14:39  空至空  阅读(294)  评论(0)    收藏  举报

导航