服务器之家

服务器之家 > 正文

深入学习Spring Cloud-Ribbon

时间:2021-08-18 13:35     来源/作者:segmentfault

ribbon简介

ribbon 是 netflix 发布的开源项目,主要功能是提供客户端的 软件负载均衡算法 ,将 netflix 的中间层服务连接在一起。ribbon 客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出load balancer(简称lb)后面所有的机器,ribbon 会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用 ribbon 实现自定义的负载均衡算法。

ribion=负载均衡+重试

深入学习Spring Cloud-Ribbon

ribbon的工作步骤:

第一步先选择 eurekaserver ,它优先选择在同一个区域内负载较少的server。 第二步再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。 其中ribbon提供了多种策略:比如轮询、随机和根据响应时间加权。

深入学习Spring Cloud-Ribbon

创建spring ribbon项目

第一步:新建spring项目

深入学习Spring Cloud-Ribbon

第二步:添加eureka discovery client,spring web依赖

深入学习Spring Cloud-Ribbon

第三步:添加sp01-commons工具api依赖;eureka-client 中已经包含 ribbon 依赖

第四步:添加yml配置

远程调用resttemplate

resttemplate 是springboot提供的一个rest远程调用工具。

类似于 httpclient,可以发送 http 请求,并处理响应。resttemplate简化了rest api调用,只需要使用它的一个方法,就可以完成请求、响应、json转换

方法:

  • getforobject(url, 转换的类型.class, 提交的参数)
  • postforobject(url, 协议体数据, 转换的类型.class)

resttemplate 和 dubbo 远程调用的区别:

resttemplate:

http调用

效率低

dubbo:

rpc调用,java的序列化

效率高

第一步:创建resttemplate实例

resttemplate 是用来调用其他微服务的工具类,封装了远程调用代码,提供了一组用于远程调用的模板方法,例如: getforobject()postforobject()

第二步:创建ribboncontroller

第三步:启动服务,进行测试

http://localhost:3001/item-service/35

等。。

ribbon负载均衡

深入学习Spring Cloud-Ribbon

第一步:resttemplate设置@loadbalanced

@loadbalanced 负载均衡注解,会对 resttemplate 实例进行封装,创建动态代理对象,并切入(aop)负载均衡代码,把请求分发到集群中的服务器

第二步:访问路径设置为id

第三步:访问测试,ribbon 会把请求分发到 8001 和 8002 两个服务端口上

http://localhost:3001/item-service/34 ribbon重试

深入学习Spring Cloud-Ribbon

第一步:添加spring-retry依赖

第二步:application.yml 配置 ribbon 重试

第三步:设置 resttemplate 的请求工厂的超时属性

第四步:itemcontroller 添加延迟代码

第五步:测试 ribbon 重试机制

通过 ribbon 访问 item-service,当超时,ribbon 会重试请求集群中其他服务器

http://localhost:3001/item-service/35

到此这篇关于深入学习spring cloud-ribbon的文章就介绍到这了,更多相关spring cloud-ribbon内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://segmentfault.com/a/1190000039323799

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部