weibocom / motan

A cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.
Other
5.88k stars 1.78k forks source link

motan-rpc服务端netty-server调整netty4线程模型优化问题 #784

Open aqiangsoft opened 5 years ago

aqiangsoft commented 5 years ago

1.虽然目前motan-netty4中server端有自定义的模拟tomcat线程池standardThreadExecutor来做线程流控和异步处理客户端读写事件(channelRead,包括request和response),但在netty4的ChannelPipeline都共用了workerGroup线程池来处理msg的decode/encode,channel的channelManage和channelHandlder等事件,服务端建议可以另外开辟一个单独的businessThreadExecutor的线程池配置来提升优化性能,看了下服务端处理请求的代码和codec的代码,完全使业务线程隔离处理相关事件 是ok的. 2.motan-rpc中server端Decode的codec是否可以增加netty的池化堆外内存分配策略来实现zero copy提升性能? like this: ServerBootstrap.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) 3.建议netty4服务端增加更多的可配置项来提升服务端性能和并发处理处理,比如ChannelOption.SO_SNDBUF,ChannelOption.SO_RCVBUF缓冲区大小配置以及操作系统层面参数ChannelOption.SO_BACKLOG等等.

rayzhang0603 commented 5 years ago

非常感谢建议,我们会考虑在后续版本中提供更多可选配置项。欢迎关注后续版本:)