- Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单,默认集成了Ribbon,与Eureka结合,实现了负载均衡的效果。
- 新建module:service-feign,修改pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.springcloud</groupId>
<artifactId>eureka</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.springcloud</groupId>
<artifactId>service-feign</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>service-feign</name>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
- 修改application.yml
spring:
application:
name: service-feign
server:
port: 8765
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
- 在启动类上添加@EnableEurekaClient,@EnableFeignClients注解,开启feign的功能。
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ServiceFeignApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceFeignApplication.class, args);
}
}
- 定义一个feign的接口,用@FeignClient指明调用的服务
@FeignClient(value = "eureka-client")
public interface SchedualServiceHi {
@GetMapping("/test")
String sayHiFromClientOne(@RequestParam(value = "name") String name);
}
- 编写一个controller调用feign的接口
@RestController
public class HiController {
@Autowired
SchedualServiceHi schedualServiceHi;
@GetMapping("/test")
public String sayHi(@RequestParam String name) {
return schedualServiceHi.sayHiFromClientOne(name);
}
}
- 启动service-feign,访问接口,端口会在8672与8763轮询,实现负载均衡。

版权声明:本文为qq_37024898原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。