这篇文章依然是在上一篇文章的代码上面的延申和扩展!!!
上一篇文章:Nacos注册中心-CSDN博客
一、 Feign介绍
Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign
其作用就是帮助我们优雅的实现http请求的发送。
二、定义和使用 Feign客户端(基本使用)
2.1、 引入fegin客户端依赖(在需要使用服务的模块或者项目中引入)
<!-- feign客户端依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
因为我这里一直都是order-service模块远程调用user-service模块的数据,因此我在order-service模块中引入的此依赖。
2.2、在启动类上添加相关注解
2.3、 编写client接口
(1)@FeignClient("user-service") 指定远程调用的服务名称
(2)@GetMapping("/user/{id}") 设置相关请求路径
2.4、 编写service类
@Autowired private UserClients userClients; // 引入client接口 public Order queryOrderById(Long orderId) { // 1. 查询指定ID的订单 Order order = orderMapper.findById(orderId); // 2. 用Feign客户端调用微服务 User user = userClients.findById(order.getUserId()); // 将用户信息设置到订单对象中 order.setUser(user); // 返回包含用户信息的订单对象 return order; }
到这里就可以替代原先的RestTemplate实现远程服务调用啦!
三、自定义Fegin的配置
这里我先放一张图片:
四、 Fegin的性能优化
4.1、 引入HttpClient依赖
<!-- 引入HttpClient依赖--> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>
4.2、 在yml文件中配置相关设置
feign: httpclient: enabled: true # 支持httpclient的开关 max-connections: 200 # 最大连接数 max-connections-per-route: 50 # 每一个路由的最大连接数
到这里就完成了Fegin的性能优化。