持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情
前言
前面的我们都是通过RestTemplate调用远程服务,但是这样子看起来不够优雅,于是我们用比较流行的OpenFeign来进行服务调用
OpenFeign
OpenFeign是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest API提供了非常简洁高效的 RPC 调用方式
前面使用Ribbon + Template时,利用RestTemplate对http请求的封装处理,形成了一套模板化的调用方法。但是在实际的开发过程中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用,所以,Feign在此基础上做了进一步封装,帮助我们定义和实现依赖服务接口的定义,在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可) ,即可完成对服务的接口绑定,简化了使用Spring Cloud Ribbon时,自动封装服务调用客户端的开发量
Feign集成了Ribbon,利用Ribbon维护了负载策略,定义服务接口以声明式的方法
创建新工程consumer-order-feign-80
添加对应的依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
配置文件保持一致
添加注解@EnableFeignClients
添加controller,service
启动项目验证
这样子Eureka结合Feign远程服务调用的案例就成功了
下面我们会讲到Hystrix