1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qiujw-fdfs-pools

Клонировать/Скачать
README.md 4.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 07:39 97e1399

fdfs-pools

Описание проекта

Подключение пуллов для FastDFS

Инструкция по использованию

  1. Конфигурация spring.xml

    <!-- Конфигурация пула объектов для fdfs -->
    <bean id="fdfsGenericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig">
        <property name="maxIdle" value="${fdfs.pool.max_idle}"/>
        <property name="maxTotal" value="${fdfs.pool.max_total}"/>
        <property name="minIdle" value="${fdfs.pool.min_idle}"/>
        <property name="maxWaitMillis" value="${fdfs.pool.max_wait_millis}"/>
    </bean>
    
    <!-- Создание пула объектов для fdfs -->
    <bean id="fdfsPool" class="com.fdfs.pool.factory.spring.FastfdsPoolFactoryBean" destroy-method="destroy">
        <property name="fdfsServerHosts" value="${fdfs.fdfs_server_hosts}"/>
        <property name="antiStealToken" value="${fdfs.anti_steal_token}"/>
        <property name="secretKey" value="${fdfs.secret_key}"/>
        <property name="connectTimeout" value="${fdfs.connect_timeout}"/>
        <property name="networkTimeout" value="${fdfs.network_timeout}"/>
        <property name="charset" value="${fdfs.charset}"/>
        <property name="genericObjectPoolConfig" ref="fdfsGenericObjectPoolConfig"/>
        
        <!-- Эквивалент вызова com.fdfs.util.FdfsUtil.setFdfsPool() -->
        <property name="enableFdfsUtil" value="true"/>
    </bean>
  2. Пример конфигурационных свойств

    fdfs.pool.max_idle=50
    fdfs.pool.max_total=100
    fdfs.pool.min_idle=20
    fdfs.pool.max_wait_millis=5000
    fdfs.connect_timeout=3000
    fdfs.network_timeout=10000
    fdfs.charset=UTF-8
    fdfs.anti_steal_token=no
    fdfs.secret_key=FastDFS1234567890
    fdfs.fdfs_server_hosts=ip1:22122,ip2:22122,ip3:22122
    ``````markdown

3. Тестирование

@Test
public void testDelete(){
    String fileId = "group1/M00/00/0A/wKjwCldSvzWASFkUAAACAXo-UOE395.txt";
    NameValuePair[] metadatas = FdfsUtil.getMetadatas(fileId);
    byte[] bytes = FdfsUtil.download(fileId);
    System.out.println(bytes != null ? bytes.length : 0);
    boolean del = FdfsUtil.deleteFile(fileId);
    System.out.println("del=" + del);
    bytes = FdfsUtil.download(fileId);
    System.out.println(bytes != null ? bytes.length : 0);
}
@Test
public void testUpload() {
    System.out.println("--------------start upload--------------");
    long startTime = System.currentTimeMillis();
for (int i = 1; i <= 1; i++) {
    try {
        NameValuePair[] metaList = new NameValuePair[2];
        metaList[0] = new NameValuePair("属性1", "1111");
        metaList[1] = new NameValuePair("属性2", "2222");
        String fileId = FdfsUtil.uploadFile(new byte[i], "txt", null, metaList);
        System.out.println(fileId);
        //System.out.println(Thread.currentThread().getName() + " active=" + fdfsPool.getNumActive() +
        //        " idle=" + fdfsPool.getNumIdle() +
        //        " wait=" + fdfsPool.getNumWaiters() +
        //        " fileId=" + fileId
        //);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
long endTime = System.currentTimeMillis();
System.out.println("cost times >> " + (endTime - startTime));
//try {
//    Thread.sleep(10000L);
//} catch (InterruptedException e) {
//    e.printStackTrace();
//}
System.out.println(Thread.currentThread().getName() + " active=" + fdfsPool.getNumActive() +
        " idle=" + fdfsPool.getNumIdle() +
        " wait=" + fdfsPool.getNumWaiters()
);
}
@Test
public void testGetMateInfo(){
    String fileId = "G1/M00/02/12/eEyJuFoEGQmAWKTOAAAAAS0C740765.txt";
    NameValuePair[] metadatas = FdfsUtil.getMetadatas(fileId);
    System.out.println(metadatas);
}
@Test
public void testUploadNotUsePool() throws IOException, MyException {
    System.out.println("--------------start upload not use pool --------------");
    long startTime = System.currentTimeMillis();
     for (int i = 1; i <= 100; i++) {
          String fileId = uploadFile(new byte[i], "txt");
          /*System.out.println(fileId);
          System.out.println(Thread.currentThread().getName() + " active=" + fdfsPool.getNumActive() +
                              " idle=" + fdfsPool.getNumIdle() +
                              " wait=" + fdfsPool.getNumWaiters() +
                              " fileId=" + fileId);*/
      }
  }
```

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qiujw-fdfs-pools.git
git@api.gitlife.ru:oschina-mirror/qiujw-fdfs-pools.git
oschina-mirror
qiujw-fdfs-pools
qiujw-fdfs-pools
master