1. Feign 简介
Feign 是一个声明式的 HTTP 客户端,它的目的就是让远程调用更加简单。Feign 提供了HTTP请
求的模板,通过编写简单的接口和插入注解,就可以定义好 HTTP 请求的参数、格式、地址等信
息。Feign 整合了 Ribbon(负载均衡)和 Hystrix(服务熔断),可以让我们不再需要显式地使用这
两个组件。
SpringCloudFeign 在 NetflixFeign 的基础上扩展了对 SpringMVC 注解的支持,在其实现下,我们
只需创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。简化了
SpringCloudRibbon 自行封装服务调用客户端的开发量。
原文链接:https://blog.csdn.net/m0_51111980/article/details/126672271
2.Feign使用
之前创建微服务模块的时候就已经引入了依赖jar
编写接口,告诉springcloud这个接口需要调用远程服务
这里以会员服务member想要调用优惠卷服务coupon的/coupon/coupon/member/list接口为例,需
要在member服务中心编写一个接口。
首先在member模块创建远程调用接口的存放包名,然后在包内创建接口CouponFeignService,
在其中编写代码
@FeignClient("gulimall-coupon") gulimall-coupon是在nacos注册的服务名
在启动类上加上@EnableFeignClients
开启远程调用
在会员服务member的controller中写一个测试方法,调用远程接口
测试远程调用功能:
准备启动两个微服务,结果会员微服务报错
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-
loadbalancer?
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc_北海道恋人的博客-CSDN博客
nested exception is java.lang.IllegalStateException: No Feign Client for loadBalancing defined._#晚来天欲雪的博客-CSDN博客
测试:
检查发现是字母写错了,失误
测试OK