本来一个很简单的服务,发现transport newbufwriter 占用过高,
grpc 是基于http2来实现的,是复用一个连接的,怎么会频繁的createTransport呢
查看代码发现
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}```