GRPC Connection Backoff Protocol
GRPC Connection Backoff Protocol
当我们向一个失败的后端进行连接时,通常不希望立即重试(为了避免请求flooding网络或者服务器) ,而是去做一些某种形式的指数backoff。
我们有几个参数:
- INITINAL_BACKOFF(第一次失败后的重试需要等待多长时间)
- MULTIPLIER(在一次失败的重试后,backoff的乘回因子)
- JITTER(随机backoffs的程度)
- MAX_BACKOFF(backoff 的上界)
- MIN_CONNECT_TIMEOUT(我们愿意给予连接完成的最小时间)
Proposed Backoff Algorithm
以指数方式回退尝试连接的起始时间,最大值为MAX_BACKOFF,并带有抖动(jitter)。
Resset Backoff
back off 应当在某一时间点被重置为 INITIAL_BACKOFF,所以重连行为是一致的,无论连接是新开始的一个,还是之前断连的一个。
当 SETTINGS frame 被接收到时,我们选择重置Backoff,在那时,我们明确知晓这个连接已经被服务器接受了。
GRPC Connection Backoff Protocol相关推荐
- Connection Backoff Interop Test Descriptions
本文档用于证实客户端能够以正确的backoffs重连服务器.测试服务器有一个端口(控制端口),运行控制服务器的rpc服务,另一个端口(重试端口)来关闭任何进入的 tcp 连接.测试有下述流: 服务器开 ...
- protocol method: #method<connection.close>(reply-code=530, reply-text=NOTALLOWED - vhost / not found
请求rabbitmq链接访问报如下错误: Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; proto ...
- 【RabbitMQ】连接RabbitMQ异常: com.rabbitmq.client.ShutdownSignalException: connection error; protocol meth
测试该工具类: package com.wj.utils; import com.rabbitmq.client.Connection; import com.rabbitmq.client.Conn ...
- Grpc+Grpc Gateway实践一 介绍与环境安装
介绍与环境安装 假定我们有一个项目需求,希望用Rpc作为内部API的通讯,同时也想对外提供Restful Api,写两套又太繁琐不符合 于是我们想到了Grpc以及Grpc Gateway,这就是我们所 ...
- grpc协议_gRPC和协议缓冲区简介
grpc协议 gRPC is a burgeoning piece of technology that allows you to build web services where you can ...
- go语言rpc,grpc介绍
目录 rpc RPC调用 net/rpc RPC over HTTP 和 RESTful server client RPC over TCP 和 RESTful server client 序列化/ ...
- gRPC——简介与Hello World
gRPC简介 gRPC 是一个高性能.开源.通用的RPC框架,由Google推出,基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言.gRPC提供 ...
- 让 gRPC 提供 REST 服务
让 gRPC 提供 REST 服务 Intro gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计. gRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头 ...
- gRPC in ASP.NET Core 3.x - gRPC 简介(1)
gRPC的结构 在我们搭建gRPC通信系统之前,首先需要知道gRPC的结构组成. 首先,需要一个server(服务器),它用来接收和处理请求,然后返回响应. 既然有server,那么肯定有client ...
最新文章
- Gitflow工作流程
- python输入水果数量_Python 水果统计
- php获取当前设备,Linux_在Linux系统中使用lsblk和blkid显示设备信息的方法,今天我们将会向你展示如何使 - phpStudy...
- java 对象锁定_少锁定Java对象池
- 这张磁盘有写保护_架构师不得不了解的硬件知识 - 磁盘阵列RAID
- [Open Source]DrawKit - A cocoa framework for drawing
- ITA 测试时之数据准备(大量数据导入与导出)(主键的最高位最好有值,而不是0)。
- centos无法使用ifconfig命令,安装方法
- 启动Samples-Web-Start Web Server时,提示Could not open port 1080
- Linux部署之批量自动安装系统之测试篇
- mysql卸载报错1606_MySQL5卸载及重装出错问题记录
- 书matlab电子,MATLAB电子仿真与应用教程 第3版.pdf
- STM32编程--GPIO配置
- vue关闭浏览器退出登录
- 深入理解java8,深入理解Java8新特性与源码剖析
- 2017年个人看书学习计划
- id在python中是什么意思_Python中的id函数是什么意思
- 游戏运营杂谈之------达克效应的启示
- Soul一声响,你的意中人就来了
- 短视频直播电商抖音项目孵化流程运营带货商业计划书方案范本