本来一个很简单的服务,发现transport newbufwriter 占用过高,
grpc 是基于http2来实现的,是复用一个连接的,怎么会频繁的createTransport呢
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/7d7ef3f69d479716.webp?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5Nzg3MzY3,size_16,color_FFFFFF,t_70)
查看代码发现
if resp, err = workerCl.CarryTask(context.TODO(), &info);nil != err{return}
没有进行连接关闭,导致grpc 会在超时之后不断的重试
修改如下
ctx,cancel := context.WithTimeout(context.Background(),3)defer cancel()if resp, err = workerCl.CarryTask(ctx, &info);nil != err{return}```