测试环境:window10+jdk11+Nacos 2.1.1+springboot2.6.13+Spring Cloud2021.0.4+Spring Cloud Alibaba2021.0.4.0+spring-cloud-openfeign3.1.4+spring-cloud-starter-loadbalancer3.1.4
作用:微服务间调用
一、文档、资源
Spring Cloud Alibaba中文文档:
https://github.com/alibaba/spring-cloud-alibaba/blob/2021.x/README-zh.md
openfeign消费者服务(ofi1):
链接: https://pan.baidu.com/s/1Y07p-d27HluVHtxRGOvULg
提取码:1111
生产者服务(ofi1-provider)
链接: https://pan.baidu.com/s/17PAzukGoGwwW4TgI1IgdFg
提取码:1111
二、项目搭建
1.服务包括:nacos注册配置中心服务、openfeign消费者服务(ofi1)、生产者服务(ofi1-provider)
2.nacos服务、生产者服务搭建方式:
https://sgybk.zxsgy.cn/1/article12
3.openfeign消费者服务:
bootstrap.properties配置:
# 应用名称
spring.application.name=ofi1
# 应用服务 WEB 访问端口
server.port=4005
#nacos地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
在nacos配置列表增加配置文件:
Data ID:ofi1.properties
Group:DEFAULT_GROUP
配置格式:Properties
配置内容:
jeecg.path.upload=path2
加pom依赖:
加spring-cloud-starter-loadbalancer提供负载均衡支持
Ofi1Application增加注解:
@EnableFeignClients
用接口+注解调用生产者:
/**
* name:指定调用rest接口所对应的服务名
* path:指定调用rest接口所在的Controller指定的@RequestMapping
*/
@FeignClient(name = "ofi1-provider",path = "ofip")
public interface OpenFeignService {
//声明需要调用的rest接口对应的方法
@RequestMapping("/uploadPath")
String ofipUploadPath();
}
在Controller中调用接口:
@Resource
private OpenFeignService openFeignService;
@Value("${jeecg.path.upload}")
private String upLoadPath;
@RequestMapping(value = "/uploadPath")
public String uploadPath() {
return upLoadPath;
}
@RequestMapping(value = "/uploadPath2")
public String uploadPath2() {
return openFeignService.ofipUploadPath();
}
4.生产者服务
Controller中可访问的接口:
@Value("${jeecg.path.upload}")
private String upLoadPath;
@RequestMapping(value = "/uploadPath")
public String uploadPath() {
return upLoadPath;
}
生产者服务中不需要引入spring-cloud-openfeign和spring-cloud-starter-loadbalancer
三、其他配置
可在消费者服务配置文件中配置openfeign
常用配置包括:
请求压缩、超时控制、日志打印