求助:关于Java nio
我们这边有个java socket server,该服务可使用原生NIO 或 netty 4.1.5
它用于其他各系统的MQ网关,其它系统向其发送包 他负责校验和往MQ写入
现在有个问题是,有一个WEB应用,PHP的,向其发送数据后,因为其不需要知道该server处理结果,所以就直接发送后close了socket通讯。但由于socket server端压力问题,导致没有能在socket通道关闭前 及时从缓冲区读取数据,从而在真正读的时候发现socket已经关闭了 无法读取到数据并导致大量的ClosedChannelException。
是否有办法可以解决这种 前端无法保持连接 发送数据完成后马上要断开导致的服务器在压力巨大的情况下丢失大量数据?
首先该问题可以用nio 2.0 aio 移步非阻塞IO解决,但是目前希望在原生nio1.0或者 netty4.1.5的基础上解决呢?
目前有的思路是拦截 客户端关闭socket时 底层进行的4次握手,在其之前先进行读取,不过没有办法在nio1.0或netty4.1.5上实现。
所以来求助一下 如何解决?