新⼀代负载均衡组件Open-Feign
Ribbon存在的问题
feign 和 ribbon 是 Spring Cloud 的 Netflix 中提供的两个实现软负载均衡的组件,Ribbon 和 Feign 都是用于调用其他服务的,方式不同。Feign 则是在 Ribbon 的基础上进行了一次改进,采用接口的方式,将需要调用的其他服务的方法定义成抽象方法即可,不需要自己构建 http 请求。我们先来看一下ribbon方式的写法:
问题:不规范,⻛格不统⼀,维护性⽐较差
Feign介绍
SpringCloud提供的伪http客户端(本质还是⽤http),封装了Http调⽤流程,更适合⾯向接⼝化
让⽤Java接⼝注解的⽅式调⽤Http请求.不⽤像Ribbon中通过封装HTTP请求报⽂的⽅式调⽤ Feign
默认集成了Ribbon。
微服务集成实现远程调用
第一步:引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloudstarter-openfeign</artifactId>
</dependency>
第二步:配置注解
启动类增加@EnableFeignClients
第三步:订单服务增加接口,服务名称记得和nacos保持一致