在使用Feign做服务间调用的时候,当下载大的文件会出现堆栈溢出的情况。另外,文件管理服务(服务提供者)文件下载接口无返回值,是通过HttpServletRespoonse传输的流数据来响应,那么服务消费者该如何接受下载的数据呢?
一. 示例介绍
我们调用feign_upload_second的下载文件接口下载文件,feign_upload_second内部使用feign调用feign_upload_first实现文件下载。
二、feign_upload_first服务提供者
服务提供者下载文件接口
@RequestMapping(value = "/downloadFile",method = RequestMethod.GET,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public void downloadFile(HttpServletResponse response){
String filePath = "D://1.txt";
File file = new File(filePath);
InputStream in = null;
if(file.exists()){
try {
OutputStream out = response.getOutputStream();