Docker中SpringBoot输出流问题
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream())输出一个文件,如果是直接运行SpringBoot的jar包,下载一个较大的文件过程中,取消下载,会触发Exception(Throwable),代码会捕获到异常connection reset by peer。
在Docker中,如果是一个特别大的文件(大约100多MB),它会在短时间内flush(有下载开始时间和结束时间,job id is : 83205 use byteStream download consume time 1206ms)完,此时浏览器中可能只下载了几MB,即使取消下载,Java的try-catch也不会捕捉到任何异常。如果在下载的初期,手速够快,取消一次,报的异常时java.io.IOException: Broken pipe。
请问如何在Docker中,和直接运行jar一样,取消下载也能进入try-catch的异常?