Feign的快速使用
2023-02-18 16:35:52 时间
SpringBoot和SpringCloud的依赖就不提及了,相信你自己都导入了,注意版本对应关系
导包
Feign中本身已经集成了Ribbon依赖和自动配置,所有无需导入Ribbon包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
在启动类上,添加注解,开启Feign功能
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient //开启注册中心客户端,Eureka、zookeeper等都可以
@EnableHystrix //开启Hystrix
@EnableFeignClients //开启Feign
public class UserConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(UserConsumerApplication.class,args);
}
}
在创建一个包名为:client
创建一个接口
创建一个包名为:client
创建一个接口,里面的方法要和被调用的Controller中的方法完全一样,并在接口上添加 @FeignClient("服务名")
访问路径也要一样 案例:
import com.leyou.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient("user-service")//声明连接的是哪一个服务
public interface UserClient {
//这里的方法要和调用服务的Controller一样,包括访问地址
@GetMapping("/user/{id}")
public User findById(@PathVariable("id") Long id);
}
在Controller层,注入Feign接口即可使用
Feign集成了Ribbon
刚开始就说了,Feign本身已经集成了Ribbon依赖和自动配置,所有直接在配置文件里配置即可
ribbon:
ReadTimeout: 2000 # 数据通信超时时长
ConnectTimeout: 500 # 连接超时时长
MaxAutoRetries: 0 # 当前服务器的重试次数
MaxAutoRetriesNextServer: 1 # 重试多少次服务
OkToRetryOnAllOperations: false # 是否对所有的请求方式都重试 如果是false代表只对get请求重试
如果集成了Hystix设置了Hystix的超时时间的话,看一下Hystix的超时时间,将Hystix的超时时间设置大一些
相关文章
- 「Docker学习系列教程」9-Docker容器数据卷介绍
- 安全运维 | tcprepaly工具的安装与使用!
- 10个 解放双手的 IDEA 插件,少些冤枉代码
- 安全运维 | iptable使用详解
- 「JDK」解析 String str=““与 new String()
- 论文/代码速递2022.12.9!
- 新书《Pytorch深度学习之目标检测》!干货预览
- CVPR2022论文速递2022.7.4!最新成果demo展示
- ECCV&CVPR论文速递2022.7.5!最新成果demo展示
- ECCV2022 &CVPR2022论文速递2022.7.6!
- ECCV2022 &CVPR2022论文速递2022.7.7!
- ECCV2022 &CVPR2022论文速递2022.7.8!
- ECCV2022 &CVPR2022论文速递2022.7.11!
- ECCV2022 &CVPR2022论文速递2022.7.12!
- 阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo
- ECCV2022 &CVPR2022论文速递2022.7.13!
- ECCV2022 &CVPR2022论文速递2022.7.14!
- 如何系统得对目标检测模型的误差分析?
- ECCV2022 &CVPR2022论文速递2022.7.15!
- ECCV2022 &CVPR2022论文速递2022.7.18!