Grpc 服务优化 GC 的一个问题,请教一下大佬们

19次阅读

共计 257 个字符,预计需要花费 1 分钟才能阅读完成。

背景:

客户端用的是 grpc 协议,这个动不了。所以服务端必须用 grpc 协议,但是我们的服务流量非常大。proto 中的 bytes 会比较大,会卡在 gc 上,性能上不去。

方案

服务端不用 grpc 框架,自己用 netty 来实现,就是两层,一层用 Netty Http2 相关的封装,一层自己手动解析 proto 的二进制,遇到 bytes 字段直接用 ByteBuf,省掉了拷贝到堆内存的 byte[],进而节省这部分的 gc。返回的时候直接编码成二进制 proto 的格式。

有人做过类似的吗,有什么坑吗?
或者有没有其他更好的方案解决 gc 问题,提高性能?

正文完
 0