fastdfs-client-java icon indicating copy to clipboard operation
fastdfs-client-java copied to clipboard

upload_file压测上传文件返回Null

Open longjiangxue opened this issue 4 years ago • 0 comments

调用这个方法 storageClient.upload_file(groupName, fileSize, uploadStream, extraName, nvp);

并发执行 50M * 20 ,30M * 25 返回结果为Null, 每一次请求都创建了一个新的客户端。

获取客户端: public StorageClient getStorageClient() { StorageClient storageClient = null; try { ClientGlobal.initByTrackers(trackerServices); TrackerClient trackerClient = new TrackerClient(); TrackerServer trackerServer = trackerClient.getConnection(); StorageServer storageServer = null; LogUtil.info(LOG_KEY, "tracker Host : " + trackerServer.getInetSocketAddress().getHostString()); storageClient = new StorageClient(trackerServer, storageServer); trackerServerThreadLocal.set(trackerServer); } catch (Exception e) { LogUtil.error(LOG_KEY, "获得tracker service失败", e); } return storageClient; }

调用方法上传文件 public String[] upload(HttpServletRequest request, String groupName, String extraName) { StorageClient storageClient = getStorageClient(); try { NameValuePair[] nvp = new NameValuePair[]{}; long fileSize = (long) request.getContentLength(); UploadStream uploadStream = new UploadStream((InputStream) request.getInputStream(), fileSize); String[] result = storageClient.upload_file(groupName, fileSize, uploadStream, extraName, nvp); LogUtil.info(LOG_KEY, "result = " + result); if (result == null) { throw new BusinessRuntimeException(ResponseStatus.FASTDFS_UPLOAD_NULL); } return result; } catch (IOException e) { LogUtil.error(LOG_KEY, "fastDFS上传文件异常", e); insufficientDiskSpace(e.getMessage(), groupName); } catch (MyException e) { LogUtil.error(LOG_KEY, "fastDFS上传文件异常", e); insufficientDiskSpace(e.getMessage(), groupName); } finally { closeTrackerServer(); } return null; }

请问,大家生产有遇到这个问题吗,是如何解决的呢

longjiangxue avatar Oct 10 '19 07:10 longjiangxue