Ceph API微服務開發--存儲集羣API調用

目標:開發Ceph存儲集羣API調用微服務

環境:IntelliJ IDEA

步驟:librados庫簡介->存儲集羣API調用程序編寫->API調用測試->Spring Boot微服務改造->運行測試

參考:http://docs.ceph.org.cn/rados/api/

1.librados庫簡介

librados支持塊存儲與對象存儲的使用,並適應多種語言接口。


2.存儲集羣API調用程序編寫

(1)rados-java依賴庫安裝

librados API能夠與ceph存儲集羣中的兩種守護程序進行交互:

a.ceph monitor - 維護集羣映射的主副本

b.ceph osd守護程序 - 將數據作爲對象存儲在存儲節點上

依賴庫安裝:

yum install librados2-devel

yum install librbd1-devel

(2)rados-java編譯

rados java項目源碼地址:https://github.com/ceph/rados-java

下載:git clone https://github.com/ceph/rados-java.git

cd rados-java

mvn install -Dmaven.test.skip=true

在target目錄下生成可執行jar包:rados-0.4.0-SNAPSHOT.jar

添加jar文件至jvm的類路徑:ln -s /usr/share/java/rados-0.4.0-SNAPSHOT.jar /usr/lib/jvm/jdk/jre/lib/ext/rados-0.4.0-SNAPSHOT.jar

程序運行需要jna支持:

yum install jna

ln -s /usr/share/java/jna.jar /usr/lib/jvm/jdk/jre/lib/ext/jna.jar

(3)集羣連接程序-官方案例

新建java程序:CephClient.java

import com.ceph.rados.Rados;

import com.ceph.rados.exceptions.RadosException;
import java.io.File;
public class CephClient {
  public static void main (String args[]){
    try {
      //創建連接句柄對象
      Rados cluster = new Rados("admin");
      System.out.println("Created cluster handle.");
      //讀取ceph集羣配置文件
      File f = new File("/etc/ceph/ceph.conf");
      cluster.confReadFile(f);
      System.out.println("Read the configuration file.");
      //連接ceph集羣
      cluster.connect();
      System.out.println("Connected to the cluster.");
    } catch (RadosException e) {
      System.out.println(e.getMessage() + ": " + e.getReturnValue());
    }
  }
}

3.API調用測試

javac CephClient.java

java CephClient


4.Spring Boot微服務改造

(1)pom.xml文件

增加rados的配置依賴


(2)CephApiContoller.java

配置訪問地址:http://.../test


(3)application.yml

設置訪問端口:


(4)Project結構


5.運行測試

進入到項目目錄,執行如下操作:

mvn compile 

mvn package

cd target/

java -jar xxx.jar

訪問地址http://10.80.25.18:9999/test



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章