前述のように高いレベルでは、このリクエストに対する応答は、クラスタについて説明します。応答には、クラスタの属性を定義する多くのプロパティと、クラスタの特定のリクエストを行うことができるcontrollersを含んでいます。
バケット名は変更可能で、クラスタ内のデフォルトバケットの名前を特定する方法がないため、システムは非SASL、非プロキシの"default"という名前のバケットに接続しようとすることに注意してください。 存在しない場合は、Couchbase Serverは、接続をドロップします。
Couchbase Serverに接続するために、このリクエストによって返されたノード・リストに依存しないようにしてください。代わりに、特定のバケットに対するノードリストを取得するために、HTTP GETリクエストを発行しなければなりません。
GET /pools/default Host: localhost:8091 Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/json X-memcachekv-Store-Client-Specification-Version: 0.1
HTTP/1.1 200 OK Content-Type: application/json Content-Length: nnn { "name":"default", "nodes":[{ "hostname":"10.0.1.20", "status":"healthy", "uptime":"14", "version":"1.6.0", "os":"i386-apple-darwin9.8.0", "memoryTotal":3584844000.0, "memoryFree":74972000, "mcdMemoryReserved":64, "mcdMemoryAllocated":48, "ports":{ "proxy":11213, "direct":11212 }, "otpNode":"ns_1@localhost", "otpCookie":"fsekryjfoeygvgcd", "clusterMembership":"active" }], "storageTotals":{ "ram":{ "total":2032558080, "used":1641816064 }, "hdd":{ "total":239315349504.0, "used": 229742735523.0 } }, "buckets":{ "uri":"/pools/default/buckets" }, "controllers":{ "ejectNode":{ "uri":"/pools/default/controller/ejectNode" }, "addNode":{ "uri":"/controller/addNode" }, "rebalance":{ "uri":"/controller/rebalance" }, "failover":{ "uri":"/controller/failOver" }, "reAddNode":{ "uri":"/controller/reAddNode" }, "stopRebalance":{ "uri":"/controller/stopRebalance" } }, "rebalanceProgress":{ "uri":"/pools/default/rebalanceProgress" }, "balanced": true, "etag":"asdas123", "initStatus": "stats":{ "uri":"/pools/default/stats" } }
このすべてのリスト内のコントローラは、x-www-form-urlencoded
パラメータを受け入れ、次の機能を実行します。
表8.3 REST API — コントローラの機能
関数 | 説明 |
---|---|
ejectNode | クラスタからノードを排出します。必須パラメータ:"otpNode"(排出されるノード)。 |
addNode | このクラスタにノードを追加します。必須パラメータ: "hostname"、 "user" と"password"。ユーザ名とパスワードは、このノードの管理者のためのものです。 |
rebalance | 既存のクラスタのリバランス。 このコントローラは、"knownNodes"と"ejectedNodes"の両方が必要です。これにより、クライアントはこの単一の操作でクラスタに残すノードと、削除するノードを明示できます。また、クライアントが最後にノードのリストを取得してからクラスタの状態に変化がないことを確認するために、これらの値を設定する必要があります。リストがノードのセットと一致しない場合、リクエストは不一致を示すHTTP 400で失敗します。リバランスの進捗はrebalanceProgress URIで確認できます。 |
failover | 特定のノードを、そのvBucketのレプリカデータを持つノードへとフェイルオーバします。"otpNode"パラメータは必須で、フェールオーバするノードを指定しています。 |
reAddNode | "otpNode"パラメータは必須で、再度追加するノードを指定します。 |
stopRebalance | 現在実行中のリバランスを停止します。これにはパラメータがありません。 |