当前位置:网站首页>9.OpenFeign服务接口调用
9.OpenFeign服务接口调用
2022-06-27 16:26:00 【苦 糖 果】
1. 概述
1.1 OpenFeign是什么?
Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可
GitHub:https://github.com/spring-cloud/spring-cloud-openfeign
1.2 能干嘛

1.3Feign和OpenFeign两者区别

2.OpenFeign使用步骤
2.1 新建cloud-consumer-feign-order80
Feign在消费端使用
接口+注解 微服务调用接口[email protected]
2.2 改pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>cloud2020</artifactId>
<groupId>com.atguigu.springcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cloud-consumer-feign-order80</artifactId>
<!--openfeign-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2.3改yml
server:
port: 80
eureka:
client:
register-with-eureka: false
service-url:
defaultZone: http://eureka7001.com:7001/eureka, http://eureka7002.com:7002/eureka
2.4 主启动类标注注解@EnableFeignClients
@SpringBootApplication
@EnableFeignClients
public class OrderFeignMain80 {
public static void main(String[] args) {
SpringApplication.run(OrderFeignMain80.class,args);
}
}
2.5 业务类
业务逻辑接口[email protected]配置调用provider服务
新建PaymentFeignService接口并新增注解@FeignClient
@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
@GetMapping(value = "/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id") Long id);
}
@RestController
public class OrderFeignController {
@Resource
private PaymentFeignService paymentFeignService;
@GetMapping(value = "/consumer/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id){
return paymentFeignService.getPaymentById(id);
}
}
2.6 测试
先启动2个eureka集群7001/7002,再启动2个微服务8001/8002,启动OpenFeign启动
http://localhost/consumer/payment/get/3
Feign自带负载均衡配置项
总结:
3.OpenFeign超时控制和日志打印功能
3.1超时控制
OpenFeign默认等待一秒钟,超过后报错
OpenFeign默认支持Ribbon
YML文件里需要开启OpenFeign客户端超时控制,即ribbon的超时控制
ribbon:
ReadTimeout: 5000 # 建立连接后从服务器读取可用资源所用的时间
ConnectTimeout: 5000 #建立连接需要的时间,适用于网络状况正常的情况下,两端连接所用的时间
3.2日志打印

日志级别:
写配置类
@Configuration
public class FeignConfig {
@Bean
Logger.Level feignLoggerLevel(){
return Logger.Level.FULL;
}
}
改yml
logging:
level:
com.atguigu.springcloud.service.PaymentFeignService: debug
后台查看
边栏推荐
- 时间序列数据的特点
- Can the selectforupdateexecution in Seata obtain the global lock before executing SQL?
- Contest3182 - the 39th individual training match for 2021 freshmen_ F: ss
- How to use the low code platform of the Internet of things for picture management?
- Jeesite 4.0 replaces the default view style and customizes the theme
- Computing trends in three times of machine learning
- ansible环境安装及数据恢复
- Wanzhou gold industry: a common technical term in gold t+d transaction?
- Three methods to quickly open CMD in a specified folder or place
- 推荐几个开源的物联网平台
猜你喜欢

New products, new personnel and new services, Infiniti will continue to plough into China's future!

Hikvision Tools Manager海康威视工具大全(含SADP、录像容量计算等工具)百万安防从业者的实用工具

Win10 LTSC 2021 wsappx CPU usage high

Teach you how to realize pynq-z2 bar code recognition

Hikvision tools manager Hikvision tools collection (including sadp, video capacity calculation and other tools) a practical tool for millions of security practitioners

Anfulai embedded weekly report (issue 252): February 7, 2022 to February 13, 2022

Explain the distributed computing of Apache skywalking OAP in detail

Summary of domestic database certification test guide (updated on June 16, 2022)

使用 WebDAV 替代445端口文件共享

如何使用物联网低代码平台进行画面管理?
随机推荐
Hash encryption
TP5 restrict access frequency
Written in eclipse, problems after querying the database connection
2022年信创行业空间测算
Application of tdengine in monitoring of CNC machine tools
喜讯丨英方软件2022获得10项发明专利!
[UVM foundation] build of UVM_ Phase execution sequence
MySQL读取Binlog日志常见错误和解决方法
Asemi rectifier bridge kbp310 function pin diagram
Advanced learning of MySQL -- Application -- Optimization of other SQL statements
GAC Mitsubishi's new outlander made its first domestic debut in the year, and its product strength was fully renewed
How to arrange digital collections on online platforms such as reading and Chinese online? Will "read/write-to-earn" products be launched in the future?
Project team management - Tuckman ladder theory
Mise à jour SQL mise à jour par lots
PostgreSQL database Wal - resource manager rmgr
国产数据库认证考试指南汇总(2022年6月16日更新)
Alibaba's mission, vision and core values
[UVM basics] UVM tree organizational structure
广汽三菱全新欧蓝德首次国内亮相于年内上市 产品力全面焕新
阿里巴巴的使命、愿景、核心价值观