netty性能压测碰到的问题和相关知识点

背景:一个通讯分了三层

T层:连接设备,简单解报文向上传送

对设备的连接是netty server;对上层用了netty client客户池

A层:解析报文

对T层连接是netty server;对上层用了netty client客户池

S层:发送消息

这层有频繁的读写redis以及写kafka等

遇到问题:

1.netty里的耗时业务处理------因为耗时任务,导致压测结果数据不好,目前使用的是netty自带的异步线程池:DefaultEventExecutorGroup

有netty的默认的耗时异步线程池

DefaultEventExecutorGroup
下面几篇文章有讲解:

Netty耗时的业务逻辑应该写在哪儿,有什么注意事项?

这个文章描述了使用netty默认的异步线程池这里用的是eventLoop;以及在channel里自定义java线程池的比较

Netty耗时任务的处理

 

Netty异步任务调度与异步线程池 

 

 

2.S层处理慢,导致A层写报文出现大量channel的isWritable为false的事故

搜索关键字 netty   channel().isWritable();有一些解决方案,但是对我意义不大,先贴出来,再说明。

深入理解Netty---从偶现宕机看Netty流量控制

作为中间层,不可能降低发送速率,也不能关闭读,因为T层在源源不断接收设备数据

这个故障的根源,还是S层处理慢,其实也就是问题1,

 

posted @ 2022-08-06 18:06  heroinss  阅读(525)  评论(0编辑  收藏  举报