Fegin的使用

Fegin的使用

 

客户端保证都注册到注册中心 下面介绍消费者:

Pom.xml

<dependency>

                     <groupId>org.springframework.cloud</groupId>

                     <artifactId>spring-cloud-starter-eureka</artifactId>

              </dependency>

              <dependency>

                     <groupId>org.springframework.cloud</groupId>

                     <artifactId>spring-cloud-starter-feign</artifactId>

              </dependency>

 

启动项

@EnableFeignClients

 

新建client

/**

 * 1. FeignClient必须是一个接口interface

 * 2. 必须加上@FeignClient指定需要调用哪个服务的接口

 * 3. Feign默认集成了Ribbon,所以通过Feign也可以实现服务的负载均衡调用(轮询方式)。

 *

 * Feign的实现的过程大致如下:

    a. 首先通过@EnableFeignClients注解开启FeignClient

    b. 根据Feign的规则实现接口,并加@FeignClient注解

    c. 程序启动后,会进行包扫描,扫描所有的@ FeignClient的注解的类,并将这些信息注入到ioc容器中。

    d. 当接口的方法被调用,通过jdk的代理,来生成具体的RequestTemplate

    e. RequestTemplate在生成Request

    f. Request交给Client去处理,其中Client可以是HttpUrlConnection、HttpClient也可以是Okhttp

    g. 最后Client被封装到LoadBalanceClient类,这个类结合类Ribbon做到了负载均衡

 *

 */

 

//@FeignClient注解通过value指定调用的服务名称,对应application.yml的application-name,如本例为eureka-feign-service-b

//通过fallback指定远程服务调用失败的回调方法,也叫服务降级处理,回调类必须实现使用@FeignClient标识的接口(implements ServiceBFeignClient)

//使用@FeignClient("eureka-feign-service-b")注解来绑定该接口对应feign-service-b服务

@FeignClient(value = "eureka-feign-service-b", fallback = ServiceBFeignClientFallback.class)

public interface ServiceBFeignClient {

 

    /**

     * 编写Feign接口简便的方法:把具体需要远程调用的服务(如服务B)中的方法复制过来,去掉实现即可。

     *

     * @param name

     * @return

     */

    @RequestMapping("/getInfo")

    String getInfo(@RequestParam("name") String name);

 

}

 

接口可以不用实现

 

@Resource 或者@Autowired

#private TokenFeign tokenFeign;

private ServiceBFeignClient serviceBFeignClient;

 

使用

  String info = serviceBFeignClient.getInfo(name);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值