RestClient端 服务负载均衡,spring cloud对feigh进行了封装,使其支持了spring mvc标准注解和HttpMessageConverters.Feigh可以与Eureka和Ribbon组合使用以支持负载均衡
客户端创建服务端对应的接口,并在接口上添加注解,即可负载均衡调用服务
使用
- 主启动类加载注解
@EnableFeignClients
- 建立与服务端接口相对应的接口,并添加注解,参数(注册服务名称)
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
- 在方法上添加与服务端控制层同样暴露的方法注解
例如:
@GetMapping("/payment/{id}") <br> CommonResult<Payment> select(@PathVariable("id") Long id);
超时控制
默认Feign客户端调用服务只等待1秒钟,但是服务端处理需要超过1秒钟,导致Feign客户端报错
解决
再yml里添加配置
ribbon:
#指建立连接所有的时间,适用于网络状况正常的情况下,两端连接所用的时间 :毫秒
ReadTimeout: 5000
#指建立连接后从服务器读取到可用资源所用的时间 : 毫秒
ConectTimeout: 5000
加强日志打印
日志级别
- NONE: 默认的,不显示任何日子和
- BASIC: 仅记录请求方法,URL,响应状态吗及执行时间
- HEADERS: 除了BASIC中定义的信息之外,还有请求和响应的头信息
- FULL: 除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据
示例
@Configuration
public class FeignConfig {
@Bean
public Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
网友评论