grpc
文章平均质量分 50
正版两只羊
golang,php,c++,区块链(ethereum,fabric),微服务等
展开
-
grpc 报错解决 code = Unavailable desc = transport is closing
最近遇到 grpc 客户端报错rpc error: code = Unavailable desc = transport is closing,原因是连接长时间没有使用,被服务端断开,但是看过grpc源码的都知道,如果failfast 设置为false的话,应该会重试的;并且 连接关闭之后grpc.clientConn也会维护这个状态,所以不应该出现这个问题才对,这个是个很奇怪的事情...原创 2020-03-05 15:21:16 · 29108 阅读 · 2 评论 -
HTTP2协议-二进制帧结构总结
前言:HTTP2引入了二进制分帧层,将普通的请求/响应,拆解为帧实现请求和响应的并发。HTTP2规定了10中类型的帧。本文将对这10种类型的帧做总结。帧的结构:所有的帧都包含一个9 byte的帧头 + 可边长的正文不同。根据帧的类型不同,正文部分的结构也不一样。帧头:Length(3 bypte):表示帧的正文部分Payload的长度。初始设为2^14(1...转载 2020-02-22 11:05:10 · 3377 阅读 · 0 评论 -
记一次服务注册&服务发现的问题和解决(etcd和k8s同时结合使用情况下)
目录背景分析原因总结背景早先的都采用基于grpc+etcd做服务注册和服务发现,都是正常的 后来有部分服务采用k8s部署,为了新旧兼容,服务会按照老方式把宿主机的ip注册到etcd上,k8s体系类使用体系类的服务发现,k8s体系外的依然使用原来的方式,互不影响 但是有服务基于k8s部署之后,发现client调用接口超时,而直接通过ip调用却是正常 且多数是发生在...原创 2019-11-27 18:20:51 · 2348 阅读 · 2 评论 -
grpc源码注解(golang)
grpc源码注解(通过阅读源码的一些理解)最近在看grpc的源码(基于golang),为了方便自己阅读以及理解,增加了一些注解。这里分享出来,希望对大家有些帮助,也是督促自己啦地址: https://github.com/liangzhiyang/annotate-grpc-go目前client端基本流程都ok了(还有server端等等)会持续更新~~接原创 2017-03-09 16:47:33 · 6074 阅读 · 2 评论 -
grpc的dial正常执行流程
请先阅读 grpc源码注解(golang)以下基于默认配置情况下(还有其它没有提到的配置都取默认值):设置了balancer(etcd等)没有设置WithBlock,即dialOptions.block = false没有设置FailOnNonTempDialError,即dialOptions.copts.FailOnNonTempDialError = falsegr原创 2017-03-13 17:04:32 · 11081 阅读 · 0 评论 -
grpc服务异常情况的执行流程
请先阅读 grpc的dial正常执行流程 默认配置情况下(还有其它没有提到的配置都取默认值):设置了balancer(etcd等)没有设置WithBlock,即dialOptions.block = false没有设置FailOnNonTempDialError,即dialOptions.copts.FailOnNonTempDialError = false原创 2017-03-13 17:07:03 · 6507 阅读 · 0 评论 -
grpc的invoke(一次请求)正常执行流程
请先阅读 grpc的dial正常执行流程和 grpc服务异常情况的执行流程默认配置情况下(还有其它没有提到的配置都取默认值):设置了balancer(etcd等)没有设置WithBlock,即dialOptions.block = false没有设置FailOnNonTempDialError,即dialOptions.copts.FailOnNonTempDialError =原创 2017-03-15 17:09:21 · 9830 阅读 · 0 评论