Spring Cloud系列教程三 :声明式服务调用Spring Cloud Fegin(F版)
原创
©著作权归作者所有:来自51CTO博客作者wx6289ced28e34b的原创作品,请联系作者获取转载授权,否则将追究法律责任
介绍
Feign集成了Ribbon,让客户端具有负载均衡的能力,同时简化了开发
github地址:https://github.com/erlieStar/spring-cloud-learning
1.项目配置如下
pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
application.yaml
server:
port: 9001
spring:
application:
name: consumer-feign
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
2.启动类加上@EnableFeignClients注解开启Feign的功能
3.定义接口,通过@FeignClient(服务名)来指定调用哪个服务
@RestController
@EnableEurekaClient
@EnableFeignClients
@SpringBootApplication
public class ConsumerFeign {
public static void main(String[] args) {
SpringApplication.run(ConsumerFeign.class);
}
@Autowired
private SimpleClient simpleClient;
@FeignClient(value = "producer-simple")
public interface SimpleClient {
@RequestMapping("hello")
String hello(@RequestParam String name);
}
@RequestMapping("hello")
public String hello(@RequestParam String name) {
return simpleClient.hello(name);
}
}
启动eureka-service(spring-cloud-eureka)
接着启动2个producer-simple(spring-cloud-ribbon)
初始端口为8001,启动一个实例后,修改端口为8002,再启动一个实例
访问http://localhost:9001/hello?name=xiaoshi
交替显示
hello xiaoshi, I am from port: 8001
hello xiaoshi, I am from port: 8002
欢迎关注
参考博客
[1]https://www.fangzhipeng.com/springcloud/2018/08/03/sc-f3-feign.html