springcloud(微服务) -2 服务调用

服务调用

restTemplet

在这里插入图片描述

ribbon

概述

ribbon 是 Netflixfa 发布的一个负载均衡器,有助于控制 HTTP 和 TCP客户端行为。在 SpringCloud 中, Eureka一般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Eureka中读 取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。 在SpringCloud中可以将注册中心和Ribbon配合使用,Ribbon自动的从注册中心中获取服务提供者的 列表信息,并基于内置的负载均衡算法,请求服务

主要作用

服务调用和负载均衡

使用

1、添加依赖
Eureka提供了,无需额外添加
2、 工程改造
(1) 服务提供者修改 shop_service_product模块中ProductController#findById() 方法如下


(2) 服务消费者修改服务消费者 shop_service_order模块中的启动类OrderApplication ,在创建RestTemplate方法上添加 @LoadBalanced 注解

在 shop_service_order的OrderController 中添加下单方法,并使用RestTemplate完成服务调用
在这里插入图片描述
3 、代码测试
浏览器中请求http://localhost:9001/order/buy/1查看展示效果如下,已经可以在订单微服务中已服务名称的形式调用商品微服务获取数据
负载均衡
默认使用的是轮询算法,其他还有

feign

使用
1、引入依赖
在这里插入图片描述
2、启动类添加Feign的支持

在这里插入图片描述
3、 启动类激活FeignClient
创建一个Feign接口,此接口是在Feign中调用微服务的核心接口 在服务消费者 shop_service_order 添加一个 ProductFeginClient 接口
在这里插入图片描述
定义各参数绑定时,@PathVariable、@RequestParam、@RequestHeader等可以指定参数属 性,在Feign中绑定参数必须通过value属性来指明具体的参数名,不然会抛出异常 @FeignClient:注解通过name指定需要调用的微服务的名称,用于创建Ribbon的负载均衡器。 所以Ribbon会把 shop-service-product 解析为注册中心的服务。
4、配 置请求提供者的调用接口
修改 OrderController ,添加ProductFeginClient的自动注入,并在order方法中使用 ProductFeginClient 完成微服务调用
在这里插入图片描述
5、测试
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值