今天调用rpc服务的时候遇到了一个bug
rpc error: code = Unavailable desc = last connection error: connection error: desc = "error reading server preface: http2: frame too large
百度了一下说是:
因为客户端在没有 TLS 加密的情况下发送 HTTP/2 帧,服务器端在 HTTP 1.1 中以未加密的 HTTP 正文发回错误消息。
grpc是以http2.0进行交互,而客户端如果由于某些原因,将http转为2.0以下的标准,则会出发这个报错。
结果尝试了各种都没用。
我在一个对外的api服务中,调用一个查询手机号用户的rpc服务 一直报错
通过grpcui 调试 也是没问题的
后来在github上找到了问题,原来是端口占用,但很困惑为什么报这个错
原文连接:
https://github.com/zeromicro/go-zero/issues/4242
修改完端口重新启动就正常了!