spring cloud学习之七:声明式服务调用 Feign

之前的文章有介绍过客户端负载均衡Ribbon熔断器Hystrix 这两个组件,使用起来比较麻烦,Spring cloud Feign 这个组件对Ribbon、Hystrix进行了封装,不仅又这两个组件的功能,还可以采用注解的方式进行使用,降低了我们的学习成本,和使用难度。Feign自身的一些组件,比如编码器和解码器等也是可插拔的。本章只简单介绍对于Ribbon和Hystrix的封装使用。

配置Feign

1、添加依赖pom.xml

<!--声明式调用-->
		<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign -->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-feign</artifactId>
			<version>1.3.5.RELEASE</version>
		</dependency>

2、添加注解-开启Feign功能

启动类上添加
@EnableFeignClients

3、定义服务调用接口

该接口类似于平常的service接口,只需要添加**@FeignClient(name="服务名“)**
其中name值对应配置文件中 spring.application.name 也是在Euraka 中注册的服务名该值不区分大小写

@FeignClient(name = "clientdemo")
public interface TestFeign {
    @RequestMapping(value = "/clientdemo/ribbon/testRibbonProducer",method = RequestMethod.GET)
    String testClientDemo();
}

4、参数的使用

  • @RequestParam(value = "type")String type,@RequestHeader ,其中value不然会报错:IllegalStateException 异常,value属性不可为空
  • @RequestBody,当参数为实体类时,需要有默认构造参数,否则会抛异常。

5、使用接口
通过注解进行注入

 @Autowired
 private TestFeign testFeign;
//调用方法
testFeign.testClientDemo();

6、开启熔断器功能

  • 在配置文件中添加配置
#开启feign断路器功能
feign.hystrix.enabled=true
  • 开启服务降级
服务接口添加实现类
用注解 @Compoment ,
@Component
public class TestFeignImpl implements TestFeign {

    @Override
    public String testClientDemo() {
        return "执行回调";
    }
}
然后在@FeignClient(name = "clientdemo")添加属性 fallback = TestFeignImpl.class;
@FeignClient(name = "clientdemo",fallback = TestFeignImpl.class)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值