使用Spring Cloud Ribbon重试请求

在微服务调用中,一些微服务圈可能调用失败,通过再次调用以达到系统稳定性效果,本文展示如何使用Ribbon和Spring Retry进行请求再次重试调用。

在Spring Cloud中,使用load balanced RestTemplate对外部服务进行请求调用,创建一个负载平衡的RestTemplate是非常简单:

@Configuration

public class MyConfiguration {

@LoadBalanced

@Bean

RestTemplate restTemplate() {

return new RestTemplate();

}

}

public class MyClass {

@Autowired

private RestTemplate restTemplate;

public String doOtherStuff() {

String results = restTemplate.getForObject("http://stores/stores", String.class);

return results;

}

}

这里加入@LoadBalanced 元注解让你利用一个发现服务比如Eureka进行服务注册,正如你在doOtherStuff方法中看到,我们对URL http://stores/stores发出请求,主机名stores并不是实际注册的主机名,而是在发现服务器中注册的stroes服务名称,RestTemplate将使用stores服务所在主机名或IP地址替代stores主机名。

正如我们都知道,这样的请求可能有问题。 出于任何原因,某些可能会出错,请求可能会失败。 这就是为什么在健壮的应用程序中,当遇到失败时,可以重试类似上面的API请求。 发生这种失败问题原因可能是服务完全停止,我们永远不会得到回应。 然而,故障可能的是由于某种类型的网络问题,并且随后的请求可能会成功。 甚至可能是服务的某个特定实例可能遇到问题的情况,但是存在完全可能是请求另一实例时却能够处理。

在Spring Cloud,如果你使用一个负载平衡RESTTemplate进行API请求,如果请求失败,开发者可以决定重试请求,在 Spring Retry project 项目中提供重试逻辑,使用 Ribbon properties 配置重试次数以及哪个请求需要重试。

resttemplate 请求重试_使用Spring Cloud Ribbon重试请求相关推荐

  1. 为Spring Cloud Ribbon配置请求重试(Camden.SR2+)

    当我们使用Spring Cloud Ribbon实现客户端负载均衡的时候,通常都会利用@LoadBalanced来让RestTemplate具备客户端负载功能,从而实现面向服务名的接口访问(原理可见& ...

  2. Spring Cloud微服务笔记(四)客户端负载均衡:Spring Cloud Ribbon

    客户端负载均衡:Spring Cloud Ribbon 一.负载均衡概念 负载均衡在系统架构中是一个非常重要,并且是不得不去实施的内容.因为负载均衡对系统的高可用性. 网络压力的缓解和处理能力的扩容的 ...

  3. java重新定义_重新定义Spring Cloud实战 PDF 下载

    资料目录: 前言 第1章 微服务与SpringCloud1 1.1 微服务架构概述1 1.1.1 应用架构的发展1 1.1.2 微服务架构3 1.1.3 微服务解决方案4 1.2 Spring Clo ...

  4. 3 Spring Cloud Ribbon

    Spring Cloud Ribbon Spring Cloud Ribbon 是一套基于 Netflix Ribbon 实现的客户端负载均衡和服务调用工具. Netflix Ribbon 是 Net ...

  5. Spring Cloud Ribbon的使用详解

    目录 一.概述 1.Ribbon是什么 2.Ribbon能干什么 3.Ribbon现状 4.未来替代方案 5.架构说明 二.RestTemplate 用法详解 三.Ribbon核心组件IRule 四. ...

  6. Spring Cloud Ribbon(服务消费者)

    Spring Cloud Ribbon 是一个基于Http和TCP的客户端负载均衡工具,基于Netflix Ribbon实现的.它不像服务注册中心.配置中心.API网关那样独立部署,但是它几乎存在于每 ...

  7. Spring Cloud的负载均衡Spring Cloud Ribbon和Spring Cloud Feign

    一.客户端负载均衡:Spring Cloud Ribbon. Spring Cloud Ribbon是基于HTTP和TCP的客户端负载工具,它是基于Netflix Ribbon实现的.通过Spring ...

  8. Spring Cloud Ribbon 是什么?

    本文内容如有错误.不足之处,欢迎技术爱好者们一同探讨,在本文下面讨论区留言,感谢. 文章目录 简述 作用 客户端负载均衡 负载均衡算法 原理和使用 核心类 原理图 使用 小结 参考资料 简述 Spri ...

  9. Spring Cloud Ribbon负载均衡策略详解

    通过之前的文章可以知道, Ribbon负载均衡器选择服务实例的方式是通过"选择策略"实现的, Ribbon实现了很多种选择策略,UML静态类图如上图. IRule是负载均衡的策略接 ...

最新文章

  1. 杭电1016Java实现
  2. win8换成linux桌面,Ubuntu/Linux Mint分分钟变Win8风
  3. linux系统是否支持gpt分区,Linux下进行GPT分区
  4. 求任意10个数中的正数之和及个数,函数实现体会地址传递
  5. 【线段树】Traffic Jams in the Land(CF498D)
  6. WIN2000大硬盘补丁
  7. 算法笔记(23)网格搜索及Python代码实现
  8. 身份证号码规律,亲测可用
  9. 使用DOS命令查找并复制指定目录及其子目录下的同一后缀所有文件
  10. 番外7. 在 Python OpenCV 寻找目标区域以及边缘扩展的解决方案
  11. liunux 查看系统参数、网络参数的命令
  12. 我每年得忽悠10万程序员上车
  13. 你知道 details 标签的妙用吗?
  14. 计算有效时间的时间戳
  15. lorem ipsum是什么
  16. CSS 中 a 标签为什么不能继承父类的颜色?
  17. 【leetcode】解题日记(未完待续)
  18. MIT 计算机操作环境导论Missing Semester Lesson 9 安全和密码学
  19. 新闻集团下周将推iPad报纸 网站屏蔽搜索引擎
  20. 读《移动互联网白皮书》有感

热门文章

  1. python编译原理_编译原理实战课 带你吃透编译技术核心概念与算法
  2. java面试基础_Java面试基础
  3. 安装caffe碰到的坑
  4. LINUX设备模型BUS,DEVICE,DRIVER
  5. 「镁客早报」韩国将支持数字加密货币的正常交易;今年智能手表出货量或达7100万部...
  6. oracle存储过程的简单学习2
  7. 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
  8. Symantec防病毒企业版10.1部署方法一
  9. PDB命令行调试Python代码
  10. 手把手教你使用C#操作SQLite数据库,新建数据库,创建表,插入,查询,删除,运算符,like...