1.添加依赖
org.springframework.cloud
spring-cloud-starter-openfeign
2.开发OpenFeign接口
@Component
@FeignClient(value = "MEMBER-SERVICE-PROVIDER") //指定调用的服务是哪个【可以是集群】
public interface MemberFeignService {
//定义方法【就是远程调用的接口】
/*
解析:
1.远程调用的方式 : get
2.远程调用的url :http://MEMBER-SERVICE-PROVIDER/member/get/{id}
3.MEMBER-SERVICE-PROVIDER就是服务提供方在eureka-server注册的服务【远程对接时MEMBER-SERVICE-PROVIDER会由eureka来获取 】
4.openfeign 会根据负载均衡来决定调用集群中的哪个【默认时轮询】
*/
@GetMapping("/member/get/{id}") //这里就是提供方的接口
Result getMemberById(@PathVariable("id") Long id);
}
3.编写主启动类
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients//启动 OpenFeignClient
public class MemberConsumerOpenfeignApplication {
public static void main(String[] args) {
SpringApplication.run(MemberConsumerOpenfeignApplication.class, args);
}
}
4.编写Controller
@RestController
@RequestMapping("/member/consumer/openfeign")
public class MemberConsummerFeignController {
@Autowired
private MemberFeignService memberFeignService;
@GetMapping("/get/{id}")
public Result getMemberById(@PathVariable("id") Long id){
return memberFeignService.getMemberById(id);
}
}
5.访问接口 http://localhost/member/consumer/openfeign/get/1 远程调用成功
Feign 提供了日志打印功能,可以通过配置来调整日志级别,从而对Feign 接口的调用情况进行监控和输出
日志级别 | 描述 |
---|---|
NONE | 默认的,不显示任何日志 |
BASIC | 仅记录请求方法、URL、响应状态码及执行时间 |
HEADERS | 除了BASIC中定义的信息之外,还有请求和响应的头信息 |
FULL | 除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据 |
常见的日志输出级别有5 种,分别是error、warn、info、debug、trace
日志输出级别 | 描述 |
---|---|
error | 错误日志,指比较严重的错误,对正常业务有影响,需要运维配置监控的 |
warn | 警告日志,一般的错误,对业务影响不大,但是需要开发关注 |
info | 信息日志,记录排查问题的关键信息,如调用时间、出参入参等等 |
debug | 用于开发DEBUG 的,关键逻辑里面的运行时数据 |
trace | 最详细的信息,一般这些信息只记录到日志文件中 |
OpenFeign日志配置示例:
编写配置类
@Configuration
public class OpenFeignConfig {
@Bean
public Logger.Level loggerLevel(){
return Logger.Level.FULL;
}
}
编写application.yml
server:
port: 80
spring:
application:
name: e-commerce-consumer-openfeign-80 #配置应用的名称
#配置eureka-client [略]......
# OpenFeign日志配置
logging:
level:
#这里com.zy88.springcloud.service.MemberFeignService 表示对应的接口;debug 表示日志级别
com.zy88.springcloud.service.MemberFeignService: debug
访问接口 http://localhost/member/consumer/openfeign/get/1 OpenFeign日志配置 成功
在application.yml修改即可
server:
port: 80
spring:
application:
name: e-commerce-consumer-openfeign-80 #配置应用的名称
#配置eureka-client【略】......
# 修改默认超时时间
ribbon:
#设置feign 客户端超时时间(openFeign 默认支持ribbon)
# ReadTimeout: 8000 表示 指的是建立连接后从服务器读取到可用资源所用的时间【时间单位是毫秒】
ReadTimeout: 8000
#指的是建立连接所用的时间,适用于网络状况正常的情况下,
#两端连接所用的时间
ConnectTimeout: 8000
参与评论
手机查看
返回顶部