摘要
摘要:RestTemplate;Feign;远程调用;
1 RPC框架-Feign
1.1 什么是Feign
Feign是一个简化HTTP客户端编写的框架,通过声明式方式将远程服务调用封装成简单接口调用。
1.2 Feign解决的问题
1.2.1 使用RestTemplate发送远程调用代码
要求:系统调用者在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回。
1.2.1.1 项目示例调用链路
文章来源:https://www.toymoban.com/news/detail-495714.html
1.2.1.2 代码逻辑
- ① 注册一个RestTemplate实例到spring容器
- ② 修改order-service中OrderService类中queryOrderById方法,根据Order对象中userId查询User
- ③ 将查询的User填充到Order对象返回。
1.2.1.3 代码实现
//配置类
/**
* RestTemplate
*
*/
@Configuration
public class RestTemplateRPC {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
//业务层
@Resource
private OrderMapper orderMapper;
@Resource
private RestTemplateRPC restTemplateRPC;
public Order queryOrderById(Long orderId) {
// 1.查询订单
Order order = orderMapper.findById(orderId);
//2.远程调用
//2.1 远程调用地址
String url = "http://localhost:8081/user/" + order.getUserId();
//2.2发起调用
User user = this.restTemplateRPC.restTemplate().getForObject(url, User.class);
//3.存入order
order.setUser(user);
// 4.返回
return order;
}
1.2.1.4 存在的问题
代码可读性差,编码体验不统一
参数复杂URL难以维护,导致代码耦合性太高。文章来源地址https://www.toymoban.com/news/detail-495714.html
1.3 Feign如何使用
1.3.1 使用逻辑
- 引入依赖
- 添加注解
- 编写Feign客户端
1.3.2 引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
1.3.3 启动类添加注释开启feign功能
到了这里,关于[RPC]:Feign远程调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!