SpringCloud之Feign
一、Feign简介
Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。
1.1、Feign的简介

二、Feign的快速入门
2.1、导入依赖
<!--引入feign的依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.2、启动类上添加注解
@EnableFeignClients
2.3、编写接口,使用Feign,告诉器请求参数,请求方式,返回参数,请求路径
package cn.waggag.client;
import cn.waggag.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @description:
* @author: waggag
* @time: 2019/7/28 11:36
* @Company http://www.waggag.cn
*/
//指定服务,到指定的服务访问
@FeignClient("user-service")
public interface UserClient {
@GetMapping("user/{id}")
User queryById(@PathVariable("id") int id);
}
2.4、在Controller中使用
@Autowired
private UserClient userClient;
@GetMapping("{id}")
public User queryById(@PathVariable("id")int id){
return userClient.queryById(id);
}
2.5、Feign的配置
#开启Feign的Hystrix熔断
feign:
hystrix:
enabled: true
#Feign的默认Ribbon(负载均衡)的设置
ribbon:
ConnectionTimeOut: 500
ReadTimeOut: 2000
2.6、Feign的熔断配置,配置接口的实现类。
package cn.waggag.client;
import cn.waggag.domain.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @description:
* @author: waggag
* @time: 2019/7/28 11:36
* @Company http://www.waggag.cn
*/
@FeignClient(value = "user-service",fallback = UserClientImpl.class)
public interface UserClient {
@GetMapping("user/{id}")
User queryById(@PathVariable("id") int id);
}
2.7、熔断类的实现,编写熔断逻辑
package cn.waggag.client;
import cn.waggag.domain.User;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: waggag
* @time: 2019/7/28 11:57
* @Company http://www.waggag.cn
*/
@Component
public class UserClientImpl implements UserClient {
@Override
public User queryById(int id) {
User user = new User();
user.setUsername("Feign的熔断测试");
return user;
}
}
2.8、Feign中包含Ribbon和Hystrix,可以直接在Feign中进行配置。

浙公网安备 33010602011771号