MogileFS的Java客戶端開發

通過Maven添加MogileFS的Java客戶端驅動包

這裏選用的是lastfm的moji,依賴包如下:

    <dependency>

        <groupId>fm.last</groupId>

        <artifactId>moji</artifactId>

        <version>1.4.0</version>

    </dependency>

基本的使用方法如下:

1:連接服務器並配置moji的客戶端

SpringMojiBeanmoji= new SpringMojiBean();

moji.setAddressesCsv("192.168.1.106:7001");

moji.setDomain("c1");

moji.initialise();

moji.setTestOnBorrow(true);

2:上傳或者覆蓋服務器上的文件

MojiFilemojiFile= moji.getFile("k2");

moji.copyToMogile(newFile("test.txt"), mojiFile);

當然也可以指定類名,如:

MojiFilemojiFile= moji.getFile("k2“,”c1”);

3:從服務器上下載獲取文件

mojiFile.copyToFile(newFile(“myTest.txt"));

4:刪除服務器上的文件

mojiFile.delete();

5:修改服務器上的文件名字

mojiFile.rename("newName");

6:獲得服務器上文件的大小

mojiFile.length()

7:檢查服務器上文件是否存在

if(mojiFile.exists()){……}

8:修改服務器上文件的類別

mojiFile.modifyStorageClass("newClass");

9:對文件key進行前綴模糊查詢

List<MojiFile> files = moji.list("k");

for(MojiFilefile : files)

{ System.out.println("file=="+file); }

可以指定取出幾個來,如:

List<MojiFile> files = moji.list("k",10);

10:獲取文件的url路徑

mojiFile.getPaths()

11:獲取服務器上文件的屬性

mojiFile.getAttributes()

通過它可以獲取到很多文件的信息

12:流式上傳文件到服務器

OutputStreamout = null;

try {

    out = mojiFile.getOutputStream();

    out.write("onlytest file".getBytes());

    out.flush(); }

finally {

    out.close();

}

13:流式從服務器下載文件

InputStreamin = null;

try {

    in = mojiFile.getInputStream();

    byte[] bs= new byte[in.available()];

    in.read(bs);

    System.out.println("thecontent===="+new String(bs));

} finally {

    in.close();

}

MogileFS和Spring集成

MogileFS結合Spring是非常簡單的

主要就是把跟服務器的連接和配置的相關屬性,做成Spring的bean,然後 依賴注入到程序中就可以了。 基本的配置示例如下:

<bean id="moji" class="fm.last.moji.spring.SpringMojiBean">

    <property name="addressesCsv" value="192.168.1.106:7001" />

    <property name="domain" value="c1" />

    <property name="maxActive" value="100" />

    <property name="maxIdle" value="10" />

    <property name="testOnBorrow" value="true" />

</bean>

MogileFS和Nginx集成

Nginx和MogileFS的結合可以有兩種情況 一種是Nginx 做爲 MogileFS 的前端客戶端 另外一種是使用 Nginx 來替換 storage nodes 上 mogstored 中的 Perlbal

下載Nginx的MogileFS模塊 地址:https://github.com/vkholodkov/nginx-mogilefs-module

重新編譯Nginx並加入模塊 命令示例如下:

./configure --prefix=/usr/common/nginx --with-http_stub_status_module --with-pcre=/usr/common/temp/pcre-8.34  --add-module=../nginx-mogilefsmodule-master

make

make install

修改Nginx的配置文件,加入訪問MogileFS的代碼

upstream mogilefs{

    server   192.168.1.106:7001;

}

server {

......

location  /download/ {

    mogilefs_tracker mogilefs;

    mogilefs_domain d1; //域


    mogilefs_noverify on; //不用驗證

    mogilefs_pass{

        proxy_pass $mogilefs_path;

        proxy_hide_header  Content-Type;

        proxy_buffering off;

    }

}

MogileFS和Memcached集成

MogileFS支持使用Memcached,方式如下:

1:先安裝Cache::Memcahced

./cpanm  Cache::Memcached

2:啓動Memcached

./memcached -d -m 10 -u root -l 192.168.1.106 -p 2222 -c 256 -P /tmp/memcached.pid

3:爲MogileFS指定Memcached的Server

./mogadm --trackers=192.168.1.106:7001 settings set memcache_servers 192.168.1.106:2222

然後就可以測試了,嘗試把mysql停掉,看看是否能訪問


發佈了23 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章