fastdfs-java-client 使用指南
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了fastdfs-java-client 使用指南,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2276字,纯文字阅读大概需要4分钟。
内容图文
![fastdfs-java-client 使用指南](/upload/InfoBanner/zyjiaocheng/847/cc3d80e923e44ab298c67835dfa0be5e.jpg)
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-java-client 使用指南全部内容,希望文章能够帮你解决fastdfs-java-client 使用指南所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。