服务超时、重试次数、熔断如何设置

2023-11-07

一、超时时间

为什么要设置超时时间?

针对服务调用都要设置一个超时时间,以避免依赖的服务迟迟没有返回调用结果,把服务消费者拖死。

超时时间怎么设置?

  • 方案一:按照服务提供者线上真实的服务水平,取 P999 或者 P9999 的值,也就是以 99.9% 或者 99.99% 的调用都在多少毫秒内返回为准。
  • 方案二:按照接口重要性来进行设置,并发低的接口设置的超时时间可以多点,比如2s,并发高的接口设置的超时时间可以设置的低点,比如200ms。

二、重试次数怎么设置?

大部分情况下,调用失败都是因为偶发的网络问题或者个别服务提供者节点有问题导致的,如果能换个节点再次访问说不定就能成功。
**通用方案:**重试次数设置为 1。

三、熔断

可以配合Hystrix熔断,假如服务提供者出现故障,短时间内无法恢复时,无论是超时重试还是双发不但不能提高服务调用的成功率,反而会因为重试给服务提供者带来更大的压力,从而加剧故障。
熔断作用:熔断就是把客户端的每一次服务调用用断路器封装起来,通过断路器来监控每一次服务调用。如果某一段时间内,服务调用失败的次数达到一定阈值,那么断路器就会被触发,后续的服务调用就直接返回,也就不会再向服务提供者发起请求了。

工作流程

  1. Closed 状态:正常情况下,断路器是处于关闭状态的,偶发的调用失败也不影响。
  2. Open 状态:当服务调用失败次数达到一定阈值时,断路器就会处于开启状态,后续的服务调用就直接返回,不会向服务提供者发起请求。
  3. Half Open 状态:当断路器开启后,每隔一段时间,会进入半打开状态,这时候会向服务提供者发起探测调用,以确定服务提供者是否恢复正常。如果调用成功了,断路器就关闭;如果没有成功,断路器就继续保持开启状态,并等待下一个周期重新进入半打开状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务超时、重试次数、熔断如何设置 的相关文章

  • 打造高质量视频,创造视觉奇观!Camtasia 2023为你升级!

    嘿 伙计 在这个全新版本中 我们迎来了焕然一新的动画控制和更简化的特效制作流程 让创作变得更高效 不仅如此 全新的背景去除和动画光标功能也让视频拥有全新的视觉体验 让我们先谈谈光标 这个细节或许被忽视 却能让您的录屏更显个性 Camtasi

随机推荐

  • OSI七层网络结构图与TCP/IP五层网络结构图

    一 OSI七层网络结构图与TCP IP五层网络结构图 又称 OSI七层网络模型与TCP IP四层网络模型 1 OSI七层模型 OSI中的层 功能 TCP IP协议族 应用层 文件传输 电子邮件 文件服务 虚拟终端 TFTP HTTP SNM
  • storm计数器(小白看懂系列)

    现在要用storm做一个计数器 我的方案是 不断地输入一串字符串 然后统计每个单词的频数 这篇博客从以下几个方面进行阐述 基本配置 流程分析与类的确定 奉上代码 含注释 一 基本配置 这里注意 导包的时候要注意 否则可能会出现神奇的强制类型
  • websocket 接口如何测试?

    什么是 websocket 接口 使用 websocket 建立长连接 服务端和客户端可以互相通信 服务端只要有数据更新 就可以主动推给客户端 WebSocket 使得客户端和服务器之间的数据交换变得更加简单 允许服务端主动向客户端推送数据
  • 【深度学习】5:CNN卷积神经网络原理

    前言 先坦白的说 深度神经网络的学习在一开始对我造成的困扰还是很大的 我也是通过不断地看相关的视频资料 文献讲解尝试去理解记忆 毕竟这些内容大多都是不可查的 我们看到的都只是输入输出的东西 里面的内部运作以及工作原理 都需要沉心静思 这篇C
  • Python 远程控制Linux

    导入paramiko库 pip install paramiko import paramiko 创建SSHClient实例对象 ssh paramiko SSHClient 调用方法 表示没有存储远程机器的公钥 允许访问 ssh set
  • 使用flex布局 子元素高度自适应填满空白問題

    之前没用flex布局过高度自适应 倒腾了一下终于成功 但是还有个bug 必须要给父元素高度 不给高度就实现不了 来看下具体代码 由于子元素的图片大小不一样 要实现填满空白 要使用flex direction column 如果高度設置為he
  • 任意遥控器遥控C1测试成功,理论上可使用任意遥控

    转自 http bbs letv com thread 35538 1 1 html http bbs letv com thread 65155 1 1 html 任意遥控器遥控C1测试成功 理论上可使用任意遥控 现在测试了乐视随机九键遥
  • 源码安装openldap2.3以前版本

    http icephoenix us linuxunix build openldap 2 3 x from sources on ubuntu It happened so that I needed to build a particu
  • 全链路自动化测试

    背景 从 SOA 架构到现在大行其道的微服务架构 系统越拆越小 整体架构的复杂度也是直线上升 我们一直老生常谈的微服务架构下的技术难点及解决方案也日渐成熟 包括典型的数据一致性 系统调用带来的一致性问题 还是跨节点跨机房复制带来的一致性问题
  • 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL

    一 条件断点 循环中经常用到这个技巧 比如 遍历1个大List的过程中 想让断点停在某个特定值 参考上图 在断点的位置 右击断点旁边的小红点 会出来一个界面 在Condition这里填入断点条件即可 这样调试时 就会自动停在i 10的位置
  • 用代码模拟人工操作浏览器

    Part1前言 有时候有一些浏览器操作的场景 非常枯燥 而且需要定期去点击 最近研究了一下如果通过代码实现模拟人工操作 整个技术方案基Puppeteer进行 Puppeteer 是一个 Node 库 它提供了一个高级 API 来通过 Dev
  • Termux 0.118.0解决Python3.11.4安装Jupyter notebook,lxml,androidviewclient,matplotlib

    最近在研究Frida HOOK 用按精做了一个简单的点击 以及HTTP发送数据 结果没有想到很不稳定 HTTP时间久了 程序是必挂无疑 尝试使用线程方式也没有能解决 配合使用JSD插件 也会有程序消失 或是卡住问题 估计只能使用纯图色模式
  • 2021-03-17

    由结果导原因 过程自己清楚就好 没必要和不在同一个意识形态的人说任何话 重要的克制自己 最重要的是提升自己 记2021年3月17日 周三
  • MySQL与Oracle如何insert into多个values

    一 Oracle一次插入多条记录 方式1 要向数据库中写入多条记录 记录集已经确定 如果一次一次插入势必影响效率 解决方法 注意 上面最后一个select之后没有union all 否则报错 方式2 二 MySQL中可以使用如下格式的插入语
  • mpvue 同一个路由只有一个实例,页面切换瞬间可以看到数据闪烁改变 闪一下之前页面的数据

    在使用mpvue的时候遇到页面数据闪烁 原因 猜测是 因为页面数据是存在于 js 中 切换页面的时候是会把数据 setData 到 render 进程中 可能有个老数据显示的闪现 解决 1 可以在 onHide 的时候重置数据或者在进入页面
  • 重写Unity的Button实现双击、长按、单击等功能

    using System using System Collections using System Collections Generic using UnityEngine EventSystems using UnityEngine
  • unity中在触控屏中Input.GetAxis("Mouse X")判断出现失误

    在pc端中可以通过Input GetAxis Mouse X 或Input GetAxis Mouse Y 判断鼠标移动的方向 但在触控屏中 以Input GetAxis Mouse X 或Input GetAxis Mouse Y 判断单
  • Mysql学习(二)-- 事务和锁

    1 事务 1 1 什么是数据库事务 事务是一个不可分割的数据库操作序列 也是数据库并发控制的基本单位 其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态 事务是逻辑上的一组操作 要么都执行 要么都不执行 事务最经典也经常被拿出来说
  • Java代码审计前置知识——SpringBoot基础

    目录 前言 一 SpringBoot简介 1 1 回顾什么是Spring 1 2 Spring是如何简化Java开发的 1 3 什么是SpringBoot 二 微服务 2 1 什么是微服务 2 2 单体应用架构
  • 服务超时、重试次数、熔断如何设置

    文章目录 一 超时时间 为什么要设置超时时间 超时时间怎么设置 二 重试次数怎么设置 三 熔断 工作流程 一 超时时间 为什么要设置超时时间 针对服务调用都要设置一个超时时间 以避免依赖的服务迟迟没有返回调用结果 把服务消费者拖死 超时时间