GRPC Connection Backoff Protocol

当我们向一个失败的后端进行连接时,通常不希望立即重试(为了避免请求flooding网络或者服务器) ,而是去做一些某种形式的指数backoff。
我们有几个参数:

  1. INITINAL_BACKOFF(第一次失败后的重试需要等待多长时间)
  2. MULTIPLIER(在一次失败的重试后,backoff的乘回因子)
  3. JITTER(随机backoffs的程度)
  4. MAX_BACKOFF(backoff 的上界)
  5. MIN_CONNECT_TIMEOUT(我们愿意给予连接完成的最小时间)

Proposed Backoff Algorithm

以指数方式回退尝试连接的起始时间,最大值为MAX_BACKOFF,并带有抖动(jitter)。

Resset Backoff

back off 应当在某一时间点被重置为 INITIAL_BACKOFF,所以重连行为是一致的,无论连接是新开始的一个,还是之前断连的一个。
当 SETTINGS frame 被接收到时,我们选择重置Backoff,在那时,我们明确知晓这个连接已经被服务器接受了。

GRPC Connection Backoff Protocol相关推荐

  1. Connection Backoff Interop Test Descriptions

    本文档用于证实客户端能够以正确的backoffs重连服务器.测试服务器有一个端口(控制端口),运行控制服务器的rpc服务,另一个端口(重试端口)来关闭任何进入的 tcp 连接.测试有下述流: 服务器开 ...

  2. protocol method: #method<connection.close>(reply-code=530, reply-text=NOTALLOWED - vhost / not found

    请求rabbitmq链接访问报如下错误: Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; proto ...

  3. 【RabbitMQ】连接RabbitMQ异常: com.rabbitmq.client.ShutdownSignalException: connection error; protocol meth

    测试该工具类: package com.wj.utils; import com.rabbitmq.client.Connection; import com.rabbitmq.client.Conn ...

  4. Grpc+Grpc Gateway实践一 介绍与环境安装

    介绍与环境安装 假定我们有一个项目需求,希望用Rpc作为内部API的通讯,同时也想对外提供Restful Api,写两套又太繁琐不符合 于是我们想到了Grpc以及Grpc Gateway,这就是我们所 ...

  5. grpc协议_gRPC和协议缓冲区简介

    grpc协议 gRPC is a burgeoning piece of technology that allows you to build web services where you can ...

  6. go语言rpc,grpc介绍

    目录 rpc RPC调用 net/rpc RPC over HTTP 和 RESTful server client RPC over TCP 和 RESTful server client 序列化/ ...

  7. gRPC——简介与Hello World

    gRPC简介 gRPC 是一个高性能.开源.通用的RPC框架,由Google推出,基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言.gRPC提供 ...

  8. 让 gRPC 提供 REST 服务

    让 gRPC 提供 REST 服务 Intro gRPC  是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计. gRPC 基于 HTTP/2 标准设计,带来诸如双向流.流控.头 ...

  9. gRPC in ASP.NET Core 3.x - gRPC 简介(1)

    gRPC的结构 在我们搭建gRPC通信系统之前,首先需要知道gRPC的结构组成. 首先,需要一个server(服务器),它用来接收和处理请求,然后返回响应. 既然有server,那么肯定有client ...

最新文章

  1. Gitflow工作流程
  2. python输入水果数量_Python 水果统计
  3. php获取当前设备,Linux_在Linux系统中使用lsblk和blkid显示设备信息的方法,今天我们将会向你展示如何使 - phpStudy...
  4. java 对象锁定_少锁定Java对象池
  5. 这张磁盘有写保护_架构师不得不了解的硬件知识 - 磁盘阵列RAID
  6. [Open Source]DrawKit - A cocoa framework for drawing
  7. ITA 测试时之数据准备(大量数据导入与导出)(主键的最高位最好有值,而不是0)。
  8. centos无法使用ifconfig命令,安装方法
  9. 启动Samples-Web-Start Web Server时,提示Could not open port 1080
  10. Linux部署之批量自动安装系统之测试篇
  11. mysql卸载报错1606_MySQL5卸载及重装出错问题记录
  12. 书matlab电子,MATLAB电子仿真与应用教程 第3版.pdf
  13. STM32编程--GPIO配置
  14. vue关闭浏览器退出登录
  15. 深入理解java8,深入理解Java8新特性与源码剖析
  16. 2017年个人看书学习计划
  17. id在python中是什么意思_Python中的id函数是什么意思
  18. 游戏运营杂谈之------达克效应的启示
  19. Soul一声响,你的意中人就来了
  20. 短视频直播电商抖音项目孵化流程运营带货商业计划书方案范本

热门文章

  1. 云端系统服务器是什么,云端服务器是什么-云端服务器介绍
  2. Framework 修改默认输入法
  3. 普元信息技术java面试题,普元java实习笔试题
  4. [BZOJ]1059: [ZJOI2007]矩阵游戏
  5. BZOJ 3240 [Noi2013] 矩阵游戏 题解
  6. java 集合之Interface Map<K,V> HashMap实现类
  7. 【牛腩】-母版图片不显示问题
  8. Spark Steaming流式日志过滤与分析
  9. 曹操为何杀死神医华佗?
  10. 百度地图API的两种加载方式