1. 程式人生 > >Ceph API微服務開發--儲存叢集API呼叫

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