IDCFクラウドのCoreOSクラスタにCouchbase Server 3.0.1をインストールしました。Couchbase Serverのクラスタに接続するサンプルを書いてみます。ドキュメントサイトにあるJava SDK 2.0を使って、Hello Couchbase Exampleを実行してみます。CoreOSの仮装マシンの1台に、Docker Hub Registryからmasato/baseimageをpullしてGradleでプロジェクトを作成します。
Java開発環境
dockerfile/javaをpullして使い捨てのコンテナを作ります。$JAVA_HOME
を確認します。
$ docker run -it --rm dockerfile/java:oracle-java8 $ echo $JAVA_HOME /usr/lib/jvm/java-8-oracle $ java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
|
サンプルプロジェクト
作成したサンプルプロジェクトはsimple-couchbaseのリポジトリにあります。git clone
したあとgradlewを実行すればGradleの実行環境ができあがります。
$ git clone https://github.com/masato/simple-couchbase.git $ cd simple-couchbase $ ./gradlew
|
CouchMain.java
Couchbase Serverに接続するアプリのMainクラスです。CouchbaseCluster.create("10.3.0.193","10.3.0.7","10.3.0.210");
の様に、引数へCouchbase Serverクラスタの3台のIPアドレスを指定します。
~/simple-couchbase/src/main/java/example/CouchMain.javapackage example; import com.couchbase.client.java.Cluster; import com.couchbase.client.java.CouchbaseCluster; import com.couchbase.client.java.Bucket; import com.couchbase.client.java.document.json.JsonObject; import com.couchbase.client.java.document.Document; import com.couchbase.client.java.document.JsonDocument; public class CouchMain { public static void main(String args[]) { try { Cluster cluster = CouchbaseCluster.create("10.3.0.193","10.3.0.7","10.3.0.210"); Bucket bucket = cluster.openBucket(); JsonObject user = JsonObject.empty() .put("firstname", "Walter") .put("lastname", "White") .put("job", "chemistry teacher") .put("age", 50); JsonDocument doc = JsonDocument.create("walter", user); JsonDocument response = bucket.upsert(doc); JsonDocument walter = bucket.get("walter"); System.out.println("Found: " + walter); cluster.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }
|
build.gradle
build.gradleにはapply plugin: 'application'
とmainClassName = 'example.CouchMain'
を記述して、runタスクからMainクラスを実行できるようにします。dependenciesにはMavenからjava-client:2.0.2を取得して追加します。
~/simple-couchbase/build.gradleapply plugin: 'java' apply plugin: 'application'
mainClassName = 'example.CouchMain'
repositories { mavenCentral() }
sourceCompatibility = 1.8 targetCompatibility = 1.8
dependencies { compile 'com.couchbase.client:java-client:2.0.2' }
|
./gradlew run
Couchbase ServerにupsertしたJSONをgetして中身を確認することができました。
$ cd ~/simple-couchbase $ ./gradlew clean run ... Found: JsonDocument{id='walter', cas=255239600078706, expiry=0, content={"firstname":"Walter","job":"chemistry teacher","age":50,"lastname":"White"}}
|