12. 【gRPC系列学习】失败重试Retry原理

news2024/11/17 1:36:25

本节分析gRPC的失败重试机制,从原理、源码上进行深入分析,下节编写测试代码,验证Retry机制。

官方文档在失败重试方面的讲解比较透彻,下面内容是对官方文档的整理、归类、总结。

1. 两种重试策略简介

1)retry策略

retry策略:发送RPC,服务端应用层返回指定的异常码后,客户端的LIB层继续重试,直到到达重试次数,返回给客户端应用层。下图非常好的说明retry策略。

这里出现Application和Lib层,简单理解我们前几节编写的客户端代码、服务端代码都为Application,gRPC内部实现的通信逻辑叫做Lib层。

在这里插入图片描述
2)hedging(对冲)策略
对冲策略不需要等待前一个请求返回,并发访问服务端,这需要服务端Application保证幂等性,否则多个请求到达服务端执行,将影响业务逻辑。

原始 RPC 发送完成,在 hedgingDelay 过去而没有成功响应后,将发出第二个 RPC。 如果在 hedgingDelay 再次过去后两个 RPC 都没有收到响应,则发送第三个 RPC,依此类推,直到 maxAttempts。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107795.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ES6--》了解并使用模块化规范

目录 ES6模块化规范 模块化的分类 ES6模块化的语法 ES6模块化规范 ES6模块化规范是浏览器端与服务器端通用的模块化开发规范。它的出现极大的降低了前端开发者的模块化学习成本,开发者不需要再额外的学习AMD、CMD或CommonJS等模块化规范。 ES6模块化规范定义&am…

激活海量数据价值,实现生产过程优化

背景 在全球掀起的新一轮工业转型浪潮中,智能制造面临巨大发展机遇。得益于云计算、大数据和人工智能技术的加持,工业转型升级进入新阶段,人们逐渐意识到由数据驱动催生的新商业模式所带来的巨大价值,数据和算法模型的结合与碰撞…

KMP算法,686. 重复叠加字符串匹配,

首先,要明白,如果b串的第一个字母b[0]在a串中没有找到,那么不管a串复制多少次,b串都不会是a的子串。 如果b串的第一个字母b[0]在a串中能找到,那么我们看一下a串需要复制几次呢? 总结,可以发现这四种情况是…

数据库系统概论第六章(关系数据理论)知识点总结(3)—— 范式知识点总结

本专栏收录了数据库的知识点,而从本文起,将讲述有关于关系数据理论中的第一范式、第二范式、第三范式以及BC范式有关知识点,提供给有需要的小伙伴进行学习,本专栏地址可以戳下面链接查看 🎈 数据库知识点总结&#xff…

windows CMD “ZEBAR ZPL 命令打印“驱动打印机

一、命令预览 copy WS20_8891898136BB520221221003.txt "\\10.165.98.33\IP-print-ZDesigner ZT411-203dpi ZPL" 二、难点打印机名称 1. copy 命令必须为共享打印机,及打印机共享名称,可以参考(163条消息) 发送ZPL指令到斑马打印机&#xff…

【Java对象拷贝机制】「实战开发专题」高性能使用CGlib实现Bean拷贝(BeanCopier)指南

对象拷贝现状 业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用一些方便的对象拷贝工具类将是很好的选择…

训练seq2seq模型的一些Tips——李宏毅机器学习笔记

Copy Mechanism 有时我们并不需要decoder创造一些东西出来,有些内容是可以从encoder复制而来。 最早具有复制能力的模型:Pointer Network 例如: chat-bot Summarization 至少要训练百万篇文章 Guided Attention Monotonic Attention Lo…

PPT怎么转化成PDF?这两种方法教你快速解决!

今天我们将向您介绍如何将 PowerPoint 演示文稿 (PPT) 转换为 PDF 文件。 我们将通过两种方法来做到这一点: 将 PowerPoint 演示文稿另存为 PDF 文件。使用 奇客免费PDF转换 将 PowerPoint 演示文稿转换为 PDF。方法一:使用 Microsoft PowerPoint 将 P…

合理利用chatGpt之新冠阳性

🏆今日学习目标: 🍀合理利用chatGpt之新冠阳性 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入:…

AI 预测到了正确的世界杯胜利者吗 ?

在过去的一个月里,卡塔尔 2022 年世界杯让我们目睹了一个又一个令人震惊的结果,甚至在决赛之前,让所有人的目光都聚焦在法国和阿根廷两支球队上,其实在球迷们心中,早就开始了各种猜测。😄现在是时候回顾一下…

基于CNN和LSTM的气象图降水预测示例

我们是否可以通过气象图来预测降水量呢?今天我们来使用CNN和LSTM进行一个有趣的实验。 我们这里使用荷兰皇家气象研究所(也称为KNMI)提供的开放数据集和公共api,来获取数据集并且构建模型预测当地的降水量。 数据收集 KNMI提供的数据集,我…

excel函数公式大全,最常用的6个公式

Excel中的函数引用一些预定义的公式,可以通过输入参数值来计算函数的对应函数,并且函数名称基本上与函数相对应,这很容易记住。在日常工作中,功能可用于数据统计、计算、处理和分析。本文主要介绍EXCEL中一些常用公式,…

视唱练耳训练小程序开发,摆脱传统训练制约性

视唱练耳作为一门综合性的音乐基础理论学科,对于声乐、器乐、舞蹈等音乐学科中的各个方面都起着十分重要的作用,尤其是突出表现在基本理论、基本技能和音乐审美上,对培养和发展学生的乐感、唱奏技巧以及音乐思维等都有着非常重要的意义。世界…

Databend 开源周报 #71

Databend 是一款强大的云数仓。专为弹性和高效设计,自由且开源。 即刻体验云服务:https://app.databend.com。 What’s New 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 Features & Improvements Planner 优化集群模…

简单易用的监控告警系统 | HertzBeat 在 Rainbond 上的使用分享

在现有的监控告警体系中 Prometheus AlertManger Grafana 一直是主流,但对于中小团队或个人来说,这种体系显的较为复杂。而 HertzBeat 能让中小团队或个人很快速的搭建监控告警系统,并通过简单的配置实现应用、数据库、操作系统的监控与告警…

k8s HPA升级 KEDA 基于事件驱动的自动伸缩

说明:KEDA有啥用,相对HPA有啥优势。HPA针对于cpu,内存来进行弹性伸缩,有点不太精确。KEDA可以接入prometheus,根据prometheus的数据指标进行弹性伸缩,相比更加的精准实用。 安装k8s环境部署prometheus 创建ns&#xf…

HashMap最全面试题

文章目录一、 存储结构字段结构二、索引计算三、put方法四、扩容机制五、其他一、 存储结构 HashMap的底层数据结构是什么? 在JDK1.7 和JDK1.8 中有所差别: 在JDK1.7 中,由“数组链表”组成,数组是 HashMap 的主体,链…

Django学习Day6

1.ORM故障处理 1)当执行python manager.py makemigrations出现迁移问题时,如何进行解决。 处理方案:在models.py中,为book表的des非空字段设置一个默认值。 2)数据库的迁移文件混乱问题 数据库中的django_migrations记录了migra…

健康指标管理系统

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 模块划分:公告类型、公告信息、地区信息、用户信息、人员分类、人员信息、指标信息、健康信息 管理员功能&a…

Java+MYSQL基于ssm在线投票管理系统

随着社会的发展,人们在处理一些问题的时候不同意见越来越多,这源于人们对思想的解放和对社会的认识。所以在处理同一问题上,为了征求不同人的意见在线投票系统诞生了。 传统的投票模式都是通过人工手动填写问卷的方式来进行,这在很大程度上会造成人力和资源上的浪费。随着科技的…