Java SpringCloud系列(四) —— Feign(伪RPC)模式实现服务间相互调用

16 篇文章 2 订阅
10 篇文章 0 订阅

首先,整个课程系列需要同学们有一定的基础技能,分别是java、springboot、github以及基础的Linux的知识,其中springboot是各位同学一定要掌握的,如果没有springboot基础可以查看我之前的博客对 java 搭建基于springboot的ssm(spring + springmvc + mybatis)的maven项目java 搭建基于springboot的ssh(spring + springmvc + hibernate)的gradle项目(基础篇) 进行学习,关于github以及Linux方面可以在使用到的时候再进行学习以及准备。
经过前面的三篇文章,已经将大体的准备工作完成,接下来我们继续讲Feign添加到我们的框架中。

1. Feign简介

Feign包含了Ribbon和Hystrix,它的主要作用是实现服务之间的调用,虽然使用Ribbon+Hystrix也能实现服务间的调用,但是代码实在是过于丑陋,所以我们要使用Feign实现服务间的调用,让我们的代码简洁起来,需要注意的是Feign使用的是伪RPC的模式,即http的rest风格进行服务间的调用,这与Dubbo是有所区别的。这里就不过多介绍http与rpc的区别了。同学们可以自己百度查看,简单来说http开发简洁迭代快,rpc效率高。

2.Feign搭建

2.1 环境准备

开发工具:idea
开发环境:JDK8
spring boot 版本: 2.0.3
构建工具: gradle4.5(因为springboot使用2.0所以gradle要使用4.0以上版本)

2.2 项目改造

我们来使用我们之前项目创建好的eureka以及clientone和clinettwo,我们来使用Feign实现clientone调用clienttwo的接口,不清楚项目搭建过程的可以查看我之前的springcloud系列,首先开启eureka、clientone以及clienttwo,如下图所示

这里写图片描述

接下来我们对clientone和clienttwo进行改造,改造过程一样,我们这里仅对clientone的改造进行介绍。

1.添加Feign依赖
这里写图片描述

//添加feign依赖
compile('org.springframework.cloud:spring-cloud-starter-openfeign')

2.打开Feign开关
这里写图片描述

好了,改造完成。clienttwo的改造方式和上面一样,是不是很简单,其实主要还是Feign对Ribbon和Hystrix进行了包装,才会让我们的服务间调用变得如此简单,接下来我们来看一下如何通过clientone来调用clienttwo的接口。

2.3 服务间调用
改造clienttwo

首先,我们在clienttwo中提供一个getInfo接口,如下图所示。

这里写图片描述

这里写图片描述

改造clientone

我们现在通过clientone使用feign来调用clienttwo的getinfo方法

这里写图片描述
这里写图片描述

现在我们来访问clientone中的hello/get/two/info接口,得到如下返回数据,调用成功。

这里写图片描述

好了,大功告成了,其实基于Feign实现服务间调用还是件很容易的事的,希望各位同学可以自己手动实践,来完成服务间的调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值