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