fastdfs-java-client 使用指南
来源:互联网 发布:java分割符 编辑:程序博客网 时间:2024/06/01 10:25
fastdfs-java-client 使用指南
示例
package com.github.onion0715.example.fastdfs; import com.github.onion0715.example.AppConfig; import org.csource.fastdfs.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * * Created by onion0715 on 2017/7/18. */ @Component public class FastDFSClient implements InitializingBean{ private TrackerClient trackerClient; private TrackerServer trackerServer; private StorageServer storageServer; private StorageClient storageClient; @Autowired private AppConfig appConfig; private Logger logger = LoggerFactory.getLogger(FastDFSClient.class); public void init(){ try{ String configFileName = appConfig.getFastDfsClientConfigFile(); String groupName = appConfig.getFastDfsGroupName(); /**配置文件优先读取本地文件系统路径,找不到再读classpath路径*/ ClientGlobal.init(configFileName); trackerClient = new TrackerClient(); /** * 从配置文件中取tracker的ip和端口建立连接,第一个地址连接失败后,会一次迭代后续地址连接,全部无法连接则失败.错误日志不会打印到文件,而是输出到System.error. */ trackerServer = trackerClient.getConnection(); /**下面两个步骤会建立一个新的TCP连接,可以通过建立多个连接,也就是多个storageClient来实现连接池的功能,加速操作效率*/ storageServer = trackerClient.getStoreStorage(trackerServer,groupName); storageClient = new StorageClient(trackerServer,storageServer); }catch (Exception e){ throw new FastDfsClientException("init exception",e); } } @Override public void afterPropertiesSet() throws Exception { if(appConfig.isFastDfsClientEnable()){ init(); logger.info("FastDFS client init done"); } } public StorageClient getStorageClient(){ return storageClient; } }
tracker_server=10.0.0.1:22122 #可以设置多个 tracker_server=10.0.0.2:22122 connect_timeout=5 #默认值 network_timeout=30 #默认值 charset=UTF-8 #默认值
实现
- 底层TCP连接使用的是Java Socket,阻塞IO
- 大量的异常都是抛出到了 System.out/error
- 使用storageClient操作时如果storeServer连接未建立,会开启连接操作完成后会关闭连接.
- 如果要提高存储操作效率,可以使用对象池化库common-pool 建立storageClient的连接池
- 在小文件5M以内的传输时间大约为100-300ms左右
- 作者提供的客户端没有使用日志,真是个危险的想法
附录
- fastdfs 源码
- fastdfs-client-java 源码
- 安装配置说明
阅读全文
1 0
- fastdfs-java-client 使用指南
- fastdfs-java-client 使用指南
- fastdfs-client-java maven
- fastdfs-client-java操作fastdfs5.0.5
- fastdfs-client-java操作fastdfs5.0.4
- FastDFS、Nginx安装、配置、测试(java client)
- fastdfs-client-java工具类的使用
- fastdfs-client-java操作fastdfs5.0.4
- Java利用fastdfs-client-java开发工具包操作FastDFS分布式文件系统
- fastdfs分布式文件系统之JAVA client工具类封装
- SpringMVC整合fastdfs-client-java实现web文件上传下载
- SpringMVC整合fastdfs-client-java实现web文件上传下载
- fastdfs分布式文件系统之JAVA client工具类封装
- SpringMVC整合fastdfs-client-java实现web文件上传下载
- 关于使用fastdfs-client-java链接fastDFS(外网访问)超时问题
- Nodejs Client for FastDFS
- drcom-client使用指南
- Http Client 使用指南
- Docker学习总结(23)——Docker搭建大规模测试环境的实践
- 51Nod-1496-最小异或和
- 真实记录我入门学习Linux系统的经历
- Java-数组的三大排序方法(冒泡排序,选择排序,插入排序)
- Monkey 介绍
- fastdfs-java-client 使用指南
- Truffle框架的使用
- Python数据分析常用工具
- linux load average说明
- static关键字
- java常用小方法
- Python学习笔记(四)
- KeyGenerator加解密在windows和linux的同步
- 将nodejs-express配置成全局可用状态