dreamhead / moco

Easy Setup Stub Server
MIT License
4.35k stars 1.08k forks source link

socket挡板当并发数较高时,出现了no buffer space available #319

Open aspstar opened 2 years ago

aspstar commented 2 years ago

原因是系统的端口数耗尽了,当请求数超过65535就开始出问题了。原因可能是服务端没有及时关闭连接,我以前用python也写过类似的socket挡板,压测时也出现过类似问题,主动在服务端处理完请求后,释放连接就不会报错了。开发大神能否给出解决方案。

ComeonBug commented 2 years ago

这是来自QQ邮箱的假期自动回复邮件。你好,我最近正在休假中,无法亲自回复你的邮件。我将在假期结束后,尽快给你回复。

aspstar commented 2 years ago

找到解决方案了有客户端的也有服务端的。服务端的方案需要修改源码MocoAggregator.java文件中的channelReadComplete函数,在ctx.fireChannelReadComplete();后面加上ctx.close();这样在高并发时就不会出现no buffer space available的错误了。

ComeonBug commented 2 years ago

这是来自QQ邮箱的假期自动回复邮件。你好,我最近正在休假中,无法亲自回复你的邮件。我将在假期结束后,尽快给你回复。