Feign是Spring Cloud提供的一个声明式的伪Http客户端, 它使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
Nacos很好的兼容了Feign, Feign默认集成了 Ribbon, 所以在Nacos下使用Fegin默认就实现了负载均衡的效果。
2.Feign实战需求:service-hosp调用service-cmn微服务查询数据库关键字段,以呈现给前端
2.1 service-cmn1 添加依赖
service-cmn添加依赖
org.springframework.cloud spring-cloud-starter-openfeign
2.主配置类上添加注解
@SpringBootApplication
@ComponentScan(basePackages = {"com.atguigu"})
@EnableDiscoveryClient
public class ServiceCmnApplication {
public static void main(String[] args){
SpringApplication.run(ServiceCmnApplication.class, args);
}
}
3.在service-cmn微服务中加入一个接口
@FeignClient("service-cmn")
@Service
public interface DictFeignClient {
@GetMapping("/admin/cmn/dict/getName/{dictCode}/{value}")
public String getName(@PathVariable("dictCode") String dictCode,
@PathVariable("value") String value);
@GetMapping("/admin/cmn/dict/getName/{value}")
public String getName(@PathVariable("value") String value);
}
这个接口是为了暴露出hosp-cmn这个微服务中的一些接口。
然后service-hosp微服务调用feign提供的接口可以实现远程微服务的调用,还可以进行负载均衡的处理
2.service-hosp1.引入依赖
org.springframework.cloud spring-cloud-starter-openfeign
2.主配置类加扫描的依赖
@SpringBootApplication
@ComponentScan(basePackages = {"com.atguigu"})
@EnableDiscoveryClient
// 要加basePackages,不然扫描不到
@EnableFeignClients(basePackages = "com.atguigu")
public class ServiceHospApplication {
public static void main(String[] args){
SpringApplication.run(ServiceHospApplication.class, args);
}
}
3.service服务中添加对应的服务调用
最后可以通过nacos注册中心找到对应的服务,完成远程调用。



