Search:

Search all manuals
Search this manual
Manual
Couchbase Server 1.8 マニュアル
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
10 Couchbaseクライアントの開発
Chapter Sections
Chapters

10.1. REST/JSON

10.1.1. JSONをパースする
10.1.2. リクエスト内のvBucketIdエンコーディング
10.1.3. クライアントライブラリとリバランシング
10.1.4. マップ更新の事前通知
10.1.5. 冗長性と可用性

vBucketサーバマップはクライアントからCouchbase ServerへのREST/JSONのリクエストにより操作します。REST/JSONのURLは、ユーザーアプリケーションから初期設定パラメータとしてクライアントライブラリに与える必要があります。クライアントアプリケーションはREST/JSONの接続情報を"追跡用URL"として起動時に設定します。REST/JSONの"ブートストラッピング"と追跡用URLに関する情報は次のリンクを参照してください。8章Couchbase 管理 REST API

最終的に、ブートストラップ手順に従うと、クライアントライブラリは、次のようなREST/JSONのURLになります。

http://HOST:PORT/pools/default/bucketsStreaming/BUCKET_NAME

例:

http://couchbase1:8080/pools/default/bucketsStreaming/default

上記URLへのリクエスト結果はJSON形式で以下のようになります:

{
    "name" : "default",
    "bucketType" : "couchbase",
...
    "vBucketServerMap" : {
        "hashAlgorithm" : "CRC",
        "numReplicas" : 1,
        "serverList" : ["10.1.2.14:11210"],
        "vBucketMap" : [[0,-1],[0,-1],[0,-1],[0,-1],[0,-1] : ]
   }
}

REST/JSONのURLにHTTPベーシック認証が適用されている場合、クライアントライブラリから正しくHTTP/RESTリクエストが行えるように、クライアントアプリケーションは(必要に応じて)ユーザ/パスワードの情報を指定する必要があります。

REST/JSONのURLは、Couchbase RESTサーバーがvBucketサーバーマップを返した後も、HTTP RESTの接続をクローズしないという点で、"ストリーミング"になっています。Couchbaseは接続を開いたままにし、クラスタの変更(新しいサーバノードが、追加、削除される、および/またはvBucketsが異なるサーバに再割り​​当てされる)があるときに、クライアントライブラリに新しいマップをストリームし続けます。Couchbaseストリーミングアプローチでは、新しいvBucketサーバーマップのJSONメッセージは、4つの改行文字("\ n\ n\ n\ n")で区切られています。

上記のセクションでは、"bucket単位の"REST/JSON URLと呼んでいるものについて説明しています。つまり、各ポートベースのbucketには、次の形式のストリーミングREST/JSON URLがあります:

http://HOST:PORT/pools/default/bucketsStreaming/BUCKET_NAME

SASL認証を使用するbucket用に異なる形式のREST/JSON URLがあります。このSASL REST/JSON URLは以下の形式です:

http://HOST:PORT/pools/default/saslBucketsStreaming

出力サンプル:

{"buckets":[
    {"name":"default",
            "nodeLocator":"vbucket",
            "saslPassword":"",
            "nodes":[
             {"clusterMembership":"active","status":"healthy","hostname":"10.1.4.11:8091",
             "version":"1.6.1rc1","os":"x86_64-unknown-linux-gnu",
             "ports":{"proxy":11211,"direct":11210}},
             {"clusterMembership":"active","status":"healthy","hostname":"10.1.4.12:8091",
             "version":"1.6.1pre_21_g5aa2027","os":"x86_64-unknown-linux-gnu",
             "ports":{"proxy":11211,"direct":11210}}],
            "vBucketServerMap":{
            "hashAlgorithm":"CRC","numReplicas":1,
        "serverList":["10.1.4.11:11210","10.1.4.12:11210"],
        "vBucketMap":[[0,-1],[1,-1],...,[0,-1],[0,-1]]}}

 ]
        }

SASL REST/JSONレスポンスとbucket単位のREST/JSONレスポンスの主な違いは、SASL REST/JSONレスポンスは複数のbucketを記述できることです。SASL REST/JSONレスポンスでは、これらの複数のbucketは、"buckets"配列の要素となっています。