上一篇:SpringCloud—(5)Ribbon负载均衡
Feign是一个声明式的web服务客户端,它让微服务之间的调用如何Controller调用Service一样更加简洁。Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端。
调用微服务的两种方式:
- Robbin 通过微服务名字调用
- Feign 通过注解和接口进行服务调用
1.使用Feign
1)引入Feign依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
2)在服务接口上添加注册@FeignClient()
@FeignClient(value = "微服务的名字")
@Component
public interface OrderClient {
@PostMapping("/addOrder")
public boolean addOrder();
}
@Controller
@RequestMapping("/Order")
public class OrderController {
@Autowired
private OrderClient orderClient;
@GetMapping("/addOrder")
public boolean addOrder(){
return orderClient.addOrder();
}
}
Feign
和Ribbon
是两种不同的服务调用方式,而Ribbon
使用了RestTemplate
使得服务调用更加倾向restFul风格
,Feign
在Ribbon
的基础上做了进一步封装,使得服务调用更加倾向面向接口编程
,其服务调用还是由Eureka
来实现。