提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、OpenFeign是什么?
在微服务中,一个服务调用另一个服务的接口时通常是无法实现的,但是可以借助RestTemplate和OpenFeign等调用接口,简单来说,就是使用OpenFeign可以调用另一个服务中的接口
二、使用步骤
1.导入依赖
<!--openFeign-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.1.3</version>
</dependency>
<!--负载均衡器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
<version>3.1.3</version>
</dependency>
2.启用OpenFeign
在对应的启动类加入注解EnableFeignClients,并配置抽离的方法的地址和config
basePackages
:client(抽离的方法)所在目录
defaultConfiguration
:配置类
3.抽离方法
1.注释标明服务名称
@FeignClient("服务名称")
2.抽取方法返回值,方法名和参数列表
@FeignClient("cart-service")
@Component
public interface CartClient {
@DeleteMapping("/carts")
void deleteCartItemByIds(@RequestParam("ids") Collection<Long> ids);
}
4.再其他服务中调用
如刚刚的cart-service再order-service中调用
1.注入client
private final CartClient cartClient;
2.调用
List<ItemDTO> items = itemClient.queryItemByIds(itemIds);
总结
openfeign让远程调用像本地方法调用一样简单