一 OpenFeign简介
OpenFeign是一个轻量级的HTTP远程调用框架,可以以JAVA接口注解的方式调用HTTP请求,并且集成了Ribbon能自动实现客户端的负载均衡;
二 SpringCloudAlibaba整合OpenFeign
1、导入Pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
2、启动类添加注解 @EnableFeignClients
@SpringBootApplication
@EnableFeignClients
public class SpringcloudalibabaConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudalibabaConsumerApplication.class, args);
}
}
3、生产者Feign客户编码
@FeignClient("springcloudalibaba-producer")
public interface ProducerFeign {
@RequestMapping("/getPort")
String myGetPort();
}
Feign底层原理(代理模式):
(1)、通过反射获取ProducerFeign 类上@FeignClient("springcloudalibaba-producer")服务名称;(服务名称,既获取服务调用接口的地址)
(2)、获取当前调用方法名称上@RequestMapping("/getPort");(既获取服务接口调用方法)
4、消费者服务调用
@RestController
public class MyConsumerController {
@Autowired
private ProducerFeign producerFeign;
@RequestMapping("/myGetPort")
public String myGetPort(){
return producerFeign.myGetPort();
}
}
三 测试访问
访问地址 http://localhost:8082/myGetPort 既轮询访问8080和8081端口