springcloud(五)

springcloud 专栏收录该内容
6 篇文章 0 订阅

springcloud — feign

简介

在这里插入图片描述
feign可以把Rest的请求进行隐藏,你不用再自己拼接url,拼接参数等等操作,一切都交给feign去做,并且feign中集成了负载均衡和熔断

实例

在服务的消费方进行操作
1.导入依赖
        <!--feign依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        
2.在引导类添加 @EnableFeignClients注解启用 feign
@SpringCloudApplication
@EnableFeignClients
public class ApplicationConsumer2 {
	/*
	因为 feign 中自动集成了负载均衡所以删除返回值为RestTemplate的方法
	*/
    public static void main(String[] args){
        SpringApplication.run(ApplicationConsumer2.class);
    }
}

3.因为删除了返回值为RestTemplate的方法被删除了那么问题来了。该怎么实现远程调用呢?
	配置一个接口 ConsumerClient
/**
 *  @FeignClient
 *  value:指定微服务服务提供者id
 *  fallback:告诉 feign 有这样的一个熔断类
 */
@FeignClient(value = "service-provider",fallback = ConsumerClientFallback.class)
@Component
public interface ConsumerClient {
    // service-provider 中的 controller中想要调用的的方法的方法
    @ResponseBody
    @RequestMapping(value = "/provider/user/get")
    public String getString();
}

4.controller中
@Controller
@RequestMapping(value = "/consumer/user")
public class ConsumerController {

    @Autowired
    @Qualifier("consumerClient")
    private ConsumerClient consumerClient;

    @RequestMapping(value = "/get")
    @ResponseBody
    public String getProvider(){
        return this.consumerClient.getString();
    }
}

5.feign中不仅集成了负载均衡也集成了熔断。那么熔断怎么使用呢?
	(1).在 feign 中熔断功能默认情况下是关闭的,所以我们需要手动打开熔断功能,
		在yml配置文件中配置
		#开启熔断功能
		feign:
		  hystrix:
		    enabled: true
	(2).编写一个类 ConsumerClientFallback 实现 ConsumerClient接口,编写熔断方法
		@Component
		public class ConsumerClientFallback implements ConsumerClient{
		
		    @Override
		    public String getString() {
		        return "服务器正忙,请稍后再试...";
		    }
		}

这样 feign 的案例基本上就配置完成了,运行查看结果

在这里插入图片描述
细节

在这里插入图片描述

  • 0
    点赞
  • 3
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值