第二弹----Spring Cloud通过OpenFeign实现声明式定义web服务客户端

如果想要通过一个微服务来调用另外一个微服务的API,如果纯原生的话,比较麻烦,如果同时需要处理多个请求的话,会涉及到负载均衡的问题,所以,OpenFeign这个强大的工具出现了。它为微服务架构下服务之间的调用提供了解决方案。首先,利用OpenFeign的声明式方式可以定义Web服务客户端;其次,进一步通过继承Ribbon 或 Eureka来实现负载均衡的HTTP客户端。

OK,理论知识大家可以再学习学习,现在我们开始实战操作。
本次,我们来学习如何引入Open Feign,以及如何使用OpenFeign 来进行API访问。

1、我们首先在一个微服务,名叫user-service中定义一个api接口:
在这里插入图片描述

2、右键在根项目中添加一个模块,为:feign-service,添加依赖为:

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<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>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

	</dependencies>

在这里插入图片描述
3、因为OpenFeign是通过接口的方式来进行api访问,所以,我们需要先新建一个访问user-service中controller的/getuserapi接口的interface。
在这里插入图片描述
其中:@FeignClient中value值定义了所需要访问的微服务的名称(注册在eureka中的名称),然后通过注解@RequestMapping()注解,来访问user-service中的getuserapi接口的controller。

4、OK,通过上面的注解,即声明了接口访问的方式,那么,接下来就可以使用这个接口了。
我们在当前的feign-service中顶一个一个controller,用来调用接口。
在这里插入图片描述
而@RequestMapping注解则表示在浏览器访问的时候所需要提供的url。

5、OK,那我们先启动user-service,再启动feign-service,来验证一下是否可以成功访问。
地址栏输入:http://localhost:8003/getuserapi
结果:
在这里插入图片描述
6、OK,到目前为止,我们已经可以通过OpenFeign来调用其他微服务的api了。不过暂时都是无参调用,有参调用的可以后面继续学习。其实OpenFeign最核心的思想就是让当前的微服务将要调用的微服务的api像调用本微服务的接口或者函数一样简单。简化微服务之间的调用过程,同时可以实现复杂均衡!

OK,本节就到此结束了,下一节继续学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴同学GOGOGO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值