Feign
Feign是一个声明式、模板化的HTTP客户端。它使得写Http客户端变得更简单。使用Feign,只需要用JAX-RS或Spring MVC注解创建可以实现的动态接口。
微服务之间的调用本质还是http请求,如果对于每个请求都需要写请求代码,增加请求参数,同时对请求结果做处理,就会存在大量重复工作,而feign非常优雅的帮助我们解决了这个问题,只需要定义一个interface,fegin就知道http请求的时候参数应该如何设置。
同时,feign也集成了ribbon,只要在微服务中依赖了ribbon,feign默认会使用ribbon定义的负载均衡策略。
最重要的是,feign并不是仅仅只能使用在有eureka或者ribbon的微服务系统中,任何系统中,只要涉及到http调用第三方服务,都可以使用feign,帮我们解决http请求的代码重复编写。
service-consumer
moudle
新建消费者模块
new ->moudle ->service-consumer
pom.xml
修改pom.xml添加spring-cloud-starter-openfeign依赖
<?xml version="1.0" encoding="UTF-8"?> scexample com.pubutech0.0.1-SNAPSHOT4.0.0 service-consumer jarorg.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version}pomimportorg.springframework.boot spring-boot-maven-plugin
application.yml
resource目录下新建application.yml修改配置信息如下:
ConsumerExampleApplication.java
新建SpringBootApplication ConsumerExampleApplication.java
FeignExampleService.java
新建FeignClient进行远程服务调用
继续新建远程服务调用测试Controller
启动工程
再次访问 localhost:8761
访问页面http://localhost:8080/hello/jason
调用的结果如下: