赞
踩
在上篇《记一次fastdfs高并发下上传失败的问题》文章中,我改造了我的程序,本以为是成功解决了dfs在高并发情况下的io问题,但是这个问题解决的不彻底,有时候还会出现。所以我决定引入连接池。
我用的是tobato大神写连接池,在这里简单介绍一下,具体大家可以直接去看源码
地址:GitHub - tobato/FastDFS_Client: Java Client for FastDFS
FastDFS论坛:FastDFS FAQ (欢迎反馈,我将及时整理) - 分布式文件系统(FastDFS)-Chinaunix
主要接口包括
- <dependency>
- <groupId>com.github.tobato</groupId>
- <artifactId>fastdfs-client</artifactId>
- <version>1.27.2</version>
- </dependency>
配置参数可以根据配置情况自行调整
- # 分布式文件系统FDFS配置
- fdfs:
- #读取时间
- so-timeout: 20000
- #连接超时时间
- connect-timeout: 20000
- thumb-image: #缩略图生成参数
- width: 150
- height: 150
- tracker-list: #TrackerList参数,支持多个
- - 127.0.0.1:22122
- pool:
- #从池中借出的对象的最大数目(配置为-1表示不限制)
- max-total: 30
- #每个key最大连接数
- max-total-per-key: 25
- #每个key对应的连接池最大空闲连接数
- max-idle-per-key: 10
- #每个key对应的连接池最小空闲连接数
- min-idle-per-key: 5
直接注入对象调用api即可
- 注入FastFileStorageClient对象,直接调用api即可
-
- /**
- * 上传一般文件
- *
- * @param inputStream
- * @param fileSize
- * @param fileExtName
- * @param metaDataSet
- * @return
- */
- StorePath uploadFile(InputStream inputStream, long fileSize, String fileExtName, Set<MetaData> metaDataSet);
-
- /**
- * 上传图片并且生成缩略图
- * <pre>
- * 支持的图片格式包括"JPG", "JPEG", "PNG", "GIF", "BMP", "WBMP"
- *
- * 缩略图为上传文件名+缩略图后缀 _150x150,如 xxx.jpg,缩略图为 xxx_150x150.jpg
- *
- * 实际样例如下
- *
- * 原图 http://localhost:8098/M00/00/17/rBEAAl33pQaAWNQNAAHYvQQn-YE374.jpg
- * 缩略图 http://localhost:8098/M00/00/17/rBEAAl33pQaAWNQNAAHYvQQn-YE374_150x150.jpg
- *
- * </pre>
- *
- * @param inputStream
- * @param fileSize
- * @param fileExtName
- * @param metaDataSet
- * @return
- */
- StorePath uploadImageAndCrtThumbImage(InputStream inputStream, long fileSize, String fileExtName,
- Set<MetaData> metaDataSet);
-
- /**
- * 上传图片
- * <pre>
- * 可通过fastImageFile对象配置
- * 1. 上传图像分组
- * 2. 上传元数据metaDataSet
- * 3. 是否生成缩略图
- * 3.1 根据默认配置生成缩略图
- * 3.2 根据指定尺寸生成缩略图
- * 3.3 根据指定比例生成缩略图
- * <pre/>
- *
- * @param fastImageFile 上传文件配置
- * @return
- */
- StorePath uploadImage(FastImageFile fastImageFile);
-
-
- /**
- * 上传文件
- * <pre>
- * 可通过fastFile对象配置
- * 1. 上传图像分组
- * 2. 上传元数据metaDataSet
- * <pre/>
- * @param fastFile
- * @return
- */
- StorePath uploadFile(FastFile fastFile);
-
- /**
- * 删除文件
- *
- * @param filePath 文件路径(groupName/path)
- */
- void deleteFile(String filePath);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。