@FeignClient注解属性


@FeignClient(value="run-product",fallback = ProductClientServiceFallBack.class)
//@FeignClient(name="runClient",url="localhost:8001")
public interface ProductClientService {}
 

vaule和name 其实是一个属性:
鼠标点进去@FeignClient就发现他俩互相使用了别名:

@AliasFor("name")
String value() default "";
@AliasFor("value")
String name() default "";
 

关于调用目前有两种:

1、接口提供方在注册中心。

如果服务提供方已经注册到注册中心了,那么name或者value的值为:服务提供方的服务名称。必须为所有客户端指定一个name或者value
@FeignClient(value="run-product",fallback = ProductClientServiceFallBack.class)

2、单独的一个http接口,接口提供方没有注册到注册中心。
@FeignClient(name="runClient11111",url="localhost:8001")
此处name的值为:调用客户端的名称。

以上两种方式都能正常调用。name可以为注册中心的实例名称,加上url属性时,name的值就与注册中心实例名称无关。至于url属性和name属性的关系请指导的大佬们留言呀。

补充知识点:

1、调用时间设置。    A服务调用B的接口。 B的接口如果处理时间长,导致连接超时。这时候要设置超时时间。默认是1秒。
 

#设置feign客户端超时时间(OpenFeign默认支持ribbon)
#ribbon:
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
#  ReadTimeout: 5000
#指的是建立连接后从服务器读取到可用资源所用的时间
#  ConnectTimeout: 5000
2、接口日志处理

logging:
  level:
    # feign日志以什么级别监控哪个接口
    com.atguigu.springcloud.service.PaymentFeignService: debug
 

上一篇:由idea springcloud项目,@FeignClient 注入时报红的问题而找到的bug


下一篇:使用FeignClientBuilder根据不同服务名动态创建FeignClient