Spring Cloud从0开始(三)服务通信:Spring Cloud Ribbon/Feign

本文详细介绍SpringCloud环境下,微服务间如何通过RestTemplate及Feign实现高效通信。包括使用RestTemplate的基础调用、结合Ribbon实现负载均衡,以及Feign的声明式REST客户端应用,涵盖接口定义、依赖配置与启动类注解。

Spring Cloud 的各微服务之间接口调用是RESTful的风格,而通常采用以下两种方式实现
I .RestTemplate
II .Feign
首先构建两个微服务用于互相调用
之前有人问到直接使用idea创建项目的方式,以下的项目构建流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如图我已经构建了订单服务(order)和商品服务(product)
在这里插入图片描述
这些文件可以删掉。

模拟一个下单,获取商品详情的流程。
(一)RestTemplate 方式调用
首先我们在商品服务下建立一个简单的接口以供调用。
配置信息与eureka基本一致,我这边设置的端口配置为
prudoct 8091
order 8090
在这里插入图片描述
重启服务可以访问的到
在这里插入图片描述
然后在order端的代码如下
在这里插入图片描述
调用order服务的下单接口可以看到如下结果
在这里插入图片描述
这就是一个基本的服务之间的通信。

但是通过这种方式有它的缺点,首先你得知道目标服务的URL,其次,如果目标服务有多个实例,那么这种方式就更加不可取了。

(二)RestTemplate (升级版)方式调用
加入
@LoadBanlancd注解
在这里插入图片描述
在这里插入图片描述
这样便可以直接通过实例名代替URL进行访问

关于LoadBanlancd,它是Ribbon的一个组件
而Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,
说到客户端负载均衡,就不得不提一下负载均衡的策略
这里在Spring Cloud中,默认的负载均衡的策略是轮询的方式,可以构建俩个product实例
如果多次调用下单接口,它会轮询的调用这俩个实例完成商品查询的请求
一般来说,轮询就已经足够用了,Spring Cloud还是提供了改变策略的方式,我们可以通过查看官方文档来找到修改的方法
在这里插入图片描述
在这里插入图片描述
这里就是改变负载均衡策略的配置
(三)Feign
Feign是一种声明式REST客户端(伪RPC)不是真正的RPC调用,采用接口加注解的方式实现。
Feign主要是针对调用方
实现起来可以分为以下三步。
(1)POM文件添加依赖
因为我们是order(下单)调用product(查看商品)所以修改order的pom文件

<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

(2)在启动类添加注解
@EnableFeignClients
在这里插入图片描述
(3)接口声明
在这里插入图片描述
在这里定义请求的URL以及要访问的目标服务,其中方法名可以自行定义。
在这里插入图片描述
然后就可以使用该接口,实现之前的下单查询商品详情请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值