springcloud + ribbon重试策略

SpringCloud系列:负载均衡组件-Ribbon 前面几篇文章介绍了微服务相关的内容,比如什么是微服务,常见的一些服务注册中心组件,以及微服务之间是如何进行服务通信的。在微服务架构中还有常见的一种场景就是服务的负载均衡。今天就一起学习SpringCloud提供的负载均衡组件-Ribbon。Spring Cloud Ribbon是一个基于http和tcp的客户端负载均衡工具,是基于netflix ribbon实现的,通过Spring Cloud封装, 可以让我们将面向服务的resttemplate请求自动转换成客户端负载均衡的服务调用。 阅读详情

1、本例采用spring cloud feign + eureka 实现

2、feign底层其实用的ribbon实现负载均衡

3、代码分析

provider1代码如下:

@Slf4j
@RestController
public class TestController {

    @GetMapping("/hello")
    public Object hello() throws InterruptedException {
        log.info("service provider 1");
        Thread.sleep(7000L);
        return "hello,I'am service provider 1";
    }
}

实例1,设置延时7s。

实例2正常

consumer配置文件

server:
  port: 8081
spring:
  application:
    name: feign-consume


eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:12346/eureka/

ribbon:
  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule #配置规则 随机
  #    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule #配置规则 轮询
  #    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RetryRule #配置规则 重试
  #    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule #配置规则 响应时间权重
  #    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.BestAvailableRule #配置规则 最空闲连接策略
  ConnectTimeout: 500 #请求连接超时时间
  ReadTimeout: 1000 #请求处理的超时时间
  OkToRetryOnAllOperations: true #对所有请求都进行重试
  MaxAutoRetriesNextServer: 2 #切换实例的重试次数
  MaxAutoRetries: 1 #对当前实例的重试次数
OkToRetryOnAllOperations:是否所有请求都重试,false:只有get重试,true:get和post都会重试,需要关注接口幂等性因素。

4、请求服务

发现超时,超时等待时间为1s

此时provider1打印日志(不包含首次重试1次MaxAutoRetries)

2020-09-18 18:09:08.601  INFO 79741 --- [io-10001-exec-7] c.s.c.e.controller.TestController        : service provider 1
2020-09-18 18:09:09.607  INFO 79741 --- [io-10001-exec-8] c.s.c.e.controller.TestController        : service provider 1

但是页面返回结果是:

hello,I'am service provider 2

可以得出结论,在请求provider1超时的情况下,请求了provider1两次,两次任然超时,切换请求实例到provider2,最终返回provider2的结果。

code:https://github.com/foxiaotao/spring-cloud-demo

【微服务】SpringCloud中Ribbon的轮询(RoundRobinRule)与重试(RetryRule)策略 前面的文章也分析了一些选取服务的算法,本篇文章继续探讨一下Ribbon的负载均衡策略:轮询算法的实现、重试、CAS、死循环?重试策略怎么实现的、多线程编程、延迟任务、中断? 阅读详情

相关推荐

Ribbon负载均衡策略与重试机制配置详解

eg: #更改负载均衡 轮询策略为 随机 #eureka-server.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule 服务器名.ribbon.策略 策略名 策略声明 策略描述 实现说明 BestAvailableRule public class BestAvailabl...

大道至简,悟在天成。 1396

localhost输入起始url启动scrapy

import json from klein import Klein from scrapy import signals import urllib from scrapy.crawler import CrawlerRunner import re app = Klein() class MyCrawlerRunner(CrawlerRunner): def crawl(self, crawler_or_spidercls, *args, **kwargs): # keep all items scr

weixin_39790665的博客 6814

[arcgis插件]在批量出图时,如何把图层属性表以动态表格的形式插入到布局页面

在批量出图时,如何把图层属性表以动态表格的形式插入到布局页面。

坐听风雨 4563

vs2008运行WEB程序时提示无法启动程序"http://localhost:12345/index.aspx".有更多数据可用

今天使用vs2008开发web项目时,发现按F5运行时,提示:无法启动程序"http://localhost:12346/Default.aspx".有更多数据可用。如下图 找了很多方法都没有解决,最后发现是因为在vs2008的默认浏览设置中,默认的浏览器不是ie造成的。把默认浏览设置成ie后,问题自动解决。

灰太狼的博客 1万+

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4377

别再死磕官方文档了!用宿舍开黑的故事,5分钟搞懂Autosar CanNM网管报文

本文通过宿舍开黑游戏的生动类比,深入浅出地解析了Autosar CanNM网管报文的工作原理。从游戏队友协作到汽车ECU节点的同步机制,详细介绍了网管报文的唤醒流程、通信协议及休眠策略,帮助读者快速掌握这一关键技术。

weixin_30463341的博客 262

Docker镜像保存save、加载load

(1)查看要要保存的镜像的ID [root@localhost docker]# docker images (2)保存镜像 [root@localhost docker]# dockersavespring-boot-docker -o /home/wzh/docker/spring-boot-docker.tar (3)加载镜像 可以在任何装 docker 的地方加载 刚保...

Jian Sun_的博客 638

Maxwell参数化建模

MAXWELL 2019 R3 参数化建模 参数化建模的优势 所谓参数化,就是在电机本体设计中涉及到的各类参数变量化,而每个变量之间又存在一定的制约关系,这样只需修改其中某个或者某些变量就可以做到对整个电机模型合理地改动。 参数化举例 以表贴式电机为例,先画电机定子,如上所示,依次进行后会弹出下面的选项框 上图就是描述电机尺寸的各类参数,接下来进行参数化。 回车ENTER,并给变量ds赋值。 赋值好后,回车ENTER 左下角properties里面就有我们新建立的变量ds了。 继续将剩余的参数

qq_41387280的博客 1万+

网站无法用localhost打开,修复localhost一切常见错误,一次性去除病根

作者:Lccee 转载自:Lccee博客 网上那些很多解决方案都是没用的,有些答案根本还没验证就发出来了,网上搜出的答案根本没用。 如果遇到此问题直接使用PHPCUSTOM功能大全里的localhost优化功能,就能完全解决了。无论是php程序还是其他程序,只要用localhost访问慢,都能解决,因为是你系统设置问题,所以有的系统慢,有的系统不会,这个功能能一键修复你系统。电脑的localhost无法使用,也可以一键修复。 1、百度搜索PHPCUSTOM下载,解压后打开软件 软件打..

shangguanqh的博客 4570

CXL Virtual Hierarchy (VH) Enumeration理解

在 CXL 3.0 协议中,CXL Virtual Hierarchy (VH) Enumeration 是一种针对 CXL 虚拟层级(Virtual Hierarchy) 设计的设备枚举机制,它允许软件将物理连接的 CXL 设备抽象为多个逻辑层级(虚拟层级),从而实现更灵活的资源管理和拓扑扩展。与传统的 PCIe 枚举相比,CXL VH 枚举在协议特性、拓扑抽象和资源分配机制上有显著差异。本质:VH 是一个逻辑上的设备层级结构,可能与物理连接拓扑不同。

Summer的博客 1003

MoveIt避障规划实战:从点云到OctoMap的环境感知全流程

本文详细解析了MoveIt避障规划中从点云到OctoMap的环境感知全流程,重点介绍了深度相机选型、点云数据处理、OctoMap生成及避障规划参数调优等关键技术。通过实战案例展示了如何利用MoveIt和OctoMap实现机械臂在复杂环境中的高效避障,为工业自动化和服务机器人开发提供实用解决方案。

weixin_30417487的博客 569

SpringCloud中Feign和Ribbon的重试机制

Feign和Ribbon的重试机制相当于一个双层循环,feign重试机制在外层,Ribbon的重试机制在里层,每执行一次feign的重试机制,内层的Ribbon的重试机制都会全部执行一次。

lt_xiaodou的博客 2146

这才是 Python 的正确玩法!用强化学习 (RL) 训练 AI 玩《王者荣耀》,胜率 90%!

大家打排位时,一定遇到过那种“意识神级、操作零失误”的对手,或者“走位呆滞、送人头”的队友。以前的“人机”是程序员写死的脚本(If 血量<20% Then 回城)。而现在的顶级 AI(如腾讯绝悟、OpenAI Five),是靠强化学习 (Reinforcement Learning)自己“左右互搏”练出来的。今天,我们不谈枯燥的数学公式,我将手把手教你用,搭建一个能玩 MOBA 游戏的 AI Agent。即使不能去 KPL 打职业,虐一下钻石局还是绰绰有余的!

BUG猿的博客 1182

008 SpringCloud_Ribbon Retry重试策略详解(二)

springcloud ribbon集成retry: 1.修改配置application.yml: spring: application: name: retry-service ##类似@EnableRetry注释,此处代表启动springcloud ribbon retry cloud: loadbalancer: retry: ena...

诸般世界 616

WPF 上位机可视化天花板:HandyControl 搭建 SCADA 系统

HandyControl 凭借「丰富的工业级控件、灵活的主题定制、优异的性能」,成为 WPF 开发 SCADA 系统的首选 UI 库。本文搭建的 SCADA 系统涵盖实时监控、设备控制、报警管理、趋势分析四大核心功能,通过 HandyControl 实现了工业级可视化效果,开发效率提升 60% 以上。控件开箱即用:无需自定义仪表盘、趋势图、指示灯等 SCADA 核心控件;可视化效果专业:工业风主题、动态颜色切换、清晰的状态呈现,契合工业场景需求;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1126

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

007 SpringCloud_Ribbon Retry重试策略详解(一)

Spring Cloud Ribbon Retry机制 当使用Spring Cloud Ribbon实现客户端负载均衡的时候,通常都会利用@LoadBalanced来让RestTemplate具备客户端负载功能,从而实现面向服务名的接口访问。 •大多数情况下,上面的实现没有任何问题,但是总有一些意外发生,比如:有一个实例发生了故障而该情况还没有被服务治理机制及时的发现和摘除,这...

诸般世界 1833

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

springCloud ribbon-13 ribbon 请求重试

问题: 使用ribbon 负载均衡,无论是使用轮询,权重,还是随机策略。如果负载均衡后面有一个服务宕机,当负载均衡到该宕机的服务时,请求就会出错。 解决方法: 使用spring 的重试组件,对ribbon 进行重试配置。 ConnectTimeout: 250 # Ribbon的连接超时时间 ReadTimeout: 1000 # Ribbon的数据读取超时时间 OkToRetryOnAllOperations: true # 是否对所有操作都进行重试 MaxAut

阿涩的博客 427

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringCloud-02-Ribbon

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

qq_20633779的博客 1366

【feign】Spring Cloud Feign组件的重试策略及负载均衡策略

文章目录Spring Cloud Feign组件的重试策略及负载均衡策略简介Feign重试策略Feign负载均衡策略 Spring Cloud Feign组件的重试策略及负载均衡策略 简介 在使用Spring Cloud微服务框架的过程中,经常会使用Feign组件进行服务间的远程调用。微服务远程调用技术的dubbo具备负载均衡策略(轮训、最小连接数、随机轮训、加权轮训)及失败策略(快速失败、失败重试),那么 Feign的负载均衡策略是什么? 失败后是否会重试,重试策略又是什么? 带着这些疑问,查阅了一些资料

hkk666123的博客 2076

SpringCloud Ribbon中的7种负载均衡策略!

作者 | 磊哥来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)负载均衡通器常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡...

磊哥聊Java 1万+

SpringCloud Ribbon实现负载均衡,SpringCloud Ribbon自定义策略

SpringCloud Ribbon实现负载均衡,SpringCloud Ribbon自定义策略 ================================ ©Copyright 蕃薯耀2021-03-09 https://www.cnblogs.com/fanshuyao/ 一、SpringCloud Ribbon概述SpringCloud Ribbon为客户端(消费者端)的负载均衡,...

蕃薯耀的博客 618

SpringCloud-Ribbon负载均衡

本文描述了Ribbon的负载均衡策略并对其中的轮询策略进行了详细分析

weixin_46120888的博客 4222

Spring Cloud Ribbon 详解

Ribbon是什么 Ribbon是一个客户端负载均衡器,它赋予了应用一些支配HTTP与TCP行为的能力,这里的负载均衡是客户端的负载均衡,也有人称为后端负载均衡是进程内负载均衡的一种。Ribbon是SpringCloud生态里的不可缺少的组件,有了它,是个服务的横向扩展更加方便了。此外想Feign和Zuul默认是集成了Ribbon。 Ribbon是Neflix开源的一个组件,目前Ribbon早已进入维护状态,但是就目前的情况来看,Spring Cloud Netflix的一些组件还是可以使用。 Spring

qq_20504373的博客 1063

SpringCloud | FeignClient和Ribbon重试机制区别与联系

在spring cloud体系项目中,引入的重试机制保证了高可用的同时,也会带来一些其它的问题,如幂等操作或一些没必要的重试。 今天就来分别分析一下 FeignClient 和 Ribbon 重试机制的实现原理和区别,主要分为三点: 1)FeignClient重试机制分析 2)Ribbon重试机制分析 3)FeignClient和Ribbon重试机制的...

diaohuyi6830的博客 190

SCA - Ribbon入门实战

文章目录实战环境Ribbon简介负载均衡分类手写客户端负载均衡Ribbon实现负载均衡负载均衡策略配置项代码配置负载均衡策略属性配置负载均衡策略 实战 环境 Nacos Nacos Version:2.0.3 Demo Application: System: macOS 10.14.6 JDK: 1.8.0_251 Spring Boot:2.2.13.RELEASE Spring Cloud:Hoxton.SR12 Spring Cloud Alibaba: 2.2.5.RELEASE Ribbon简介

windfbi 403

Ribbon 学习笔记

此段笔记均摘自 翟永超 ——《springcloud微服务实战》,特此标出,以示尊敬。 一 Spring Cloud Ribbon 客户端负载均衡 1、 @LoadBalanced 开启客户端负载均衡 沁bbon 的时候 Spring Cloud 默认采用ZoneAware-LoadBalancer 2、 Spring Cloud Ribbon 是一个基于 HTTP 和 ...

qq_34090205的博客 247
上一篇: spring cloud之ribbon负载均衡,eureka分布式服务注册
下一篇: spring cloud feign 熔断hystrix
小涛_foxiaotao
博客等级 码龄14年 2粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值