ReyClient注解详解

本文详细介绍了ReyClient注解的使用方法,它是x7-reyc框架的一部分,用于发起HTTP请求。文章解释了如何配置DNS、IP、熔断、重试及降级处理,并提供了代码示例。

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

 

代码示例:

import io.xream.x7.demo.CatRO;
import io.xream.x7.reyc.Url;
import io.xream.x7.reyc.ReyClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@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

# 熔断打开的时间 60S, 需要的单独配置的名称: xxxxxx
# resilience4j.circuitbreaker.xxxxxx.waitDurationInOpenState=60000
resilience4j.circuitbreaker.waitDurationInOpenState=60000
resilience4j.circuitbreaker.ringBufferSizeInClosedState=100
resilience4j.circuitbreaker.ringBufferSizeInHalfOpenState=10
resilience4j.circuitbreaker.failureRateThreshold=50
resilience4j.circuitbreaker.eventConsumerBufferSize=100

resilience4j.ratelimiter.limitForPeriod=50
resilience4j.ratelimiter.limitRefreshPeriodInMillis=1
resilience4j.ratelimiter.timeoutInMillis=5000

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

 

转载于:https://www.cnblogs.com/kkio/p/10838339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值