1.pom文件中引入feign的依赖
spring-cloud-starter-openfeign
2.添加注解
@SpringBootApplication
@EnableDiscoveryClient,开启服务发现
服务提供者上添加注解@EnableFeignClient,开启feign,basePackages注解属性内写清client所在位置
3.编写Feign的客户端
Client客户端接口上添加注解@FeignClient("微服务名称"),client客户端一般写在api模块中
指定调用指定服务下的哪个路径,可用服务提供者的controller进行改写,这个客户端主要是基于SpringMVC的注解开声明远程调用的信息的
这样,Feign客户端可以帮助我们发送http请求,无需自己使用RestTemplate来发送了
4.服务消费者调用
服务消费者一端@Autowired注入服务提供者的Client接口,调用相应方法查询数据库即可。
5.Feign的连接池
Feign底层发送http请求,底层客户端默认是URLConnection,它时不支持连接池的,每次请求都是新建链接,提高Feign的性能主要手段就是使用带连接池的客户端代替默认的URLConnection,比如Apache HttpClient.
实现步骤:导入feign-httpclient依赖,在application.yml中添加配置fein.httpclient.enabled修改为true.
6.注释
一般需要将Feign的Client抽取为独立模块api,并把接口相关的POJO、默认的Feign配置都放在这个模块中,提供消费者使用。并且服务提供者的启动类上的注解@EnableFeignClients,需要是要买好basePackages属性来寻找api中client所在位置。