美文网首页
6.springCloud Feign实现服务消费

6.springCloud Feign实现服务消费

作者: 呆叔么么 | 来源:发表于2019-11-28 18:57 被阅读0次

Spring Cloud Feign是一套基于Netflix Feign实现的声明式服务调用客户端。它使得编写Web服务客户端变得更加简单。我们只需要通过创建接口并用注解来配置它既可完成对Web服务接口的绑定。它具备可插拔的注解支持,包括Feign注解、JAX-RS注解。它也支持可插拔的编码器和解码器。Spring Cloud Feign还扩展了对Spring MVC注解的支持,同时还整合了RibbonEureka来提供均衡负载的HTTP客户端实现。

1.添加依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

注意: spring-cloud-starter-openfeign包含spring-cloud-starter-netflix-ribbon和spring-cloud-starter-loadbalancer。(来自官网)

2.修改启动类

通过@EnableFeignClients注解开启扫描Spring Cloud Feign客户端的功能

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class LovingApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(LovingApplication.class, args);
    }

}

3.创建一个Feign的客户端接口定义(order服务中)

使用@FeignClient注解来指定这个接口所要调用的服务名称,接口中定义的各个函数使用Spring MVC的注解就可以来绑定服务提供方的REST接口

@FeignClient(name = "PRODUCT")
@RequestMapping("/product")
public interface ProductClient {
    @GetMapping("/search/{goodsId}")
    GoodsInfo search(@PathVariable("goodsId") Long goodsId);
}

4.@FeignClient 配置

name:指定FeignClient的名称,如果项目使用了Ribbon,name属性会作为微服务的名称,用于服务发现
url: url一般用于调试,可以手动指定@FeignClient调用的地址
decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException
configuration: Feign配置类,可以自定义Feign的Encoder、Decoder、LogLevel、Contract
fallback: 定义容错的处理类,当调用远程接口失败或超时时,会调用对应接口的容错逻辑,fallback指定的类必须实现@FeignClient标记的接口
fallbackFactory: 工厂类,用于生成fallback类示例,通过这个属性我们可以实现每个接口通用的容错逻辑,减少重复的代码
path: 定义当前FeignClient的统一前缀

5.修改Controller

通过定义的feign客户端来调用服务提供方的接口

...
    @Autowired
    private ProductClient productClient;

    @GetMapping("/contact/{goodsId}")
    public ServerResponse contact(@PathVariable("goodsId") Long goodsId) {
        GoodsInfo goodsInfo = productClient.search(goodsId);
        return ServerResponse.createBySuccess(goodsInfo);
    }
...

6.访问http://172.16.15.179:2000/order/contact/10003

image.png

相关文章

网友评论

      本文标题:6.springCloud Feign实现服务消费

      本文链接:https://www.haomeiwen.com/subject/yowbwctx.html