Consul入門06-キー/値ペアデータ
3852 ワード
サービス発見および健康診断を提供するために、Consulは非常に使いやすいキー/値ペアストレージを提供します.動的構成情報を格納し、サービス協力を支援し、leader選挙メカニズムを構築し、開発者が考えることができる他の構築に使用することができます.
この記事では、少なくとも1つのConsulエージェントが実行されていると仮定します.
ストレージ・キー/値ペアが非常に簡単であることを示すために、キー/値ストレージでいくつかのキーを維持します.
プロキシの実行手順では、ローカルプロキシのクエリーを示します.まず、キー/値ストレージにキーが存在しないことを確認します.
何のキーもないので404の応答が得られ、PUTでいくつかのキーを格納することができます.
ここでは3つのキーを作成し、それぞれに値「test」を関連付けます.注意値フィールドの戻り値は、UTF 8以外の文字セットを許可するbase 64に基づく符号化である.キー「web/key 2」には42のタグが設定されています.すべてのキーは、64ビット長の整形マーカー値の設定をサポートします.このタグはConsul内部で使用されるものではなく、任意のキー値ペアのメタデータ情報を格納するために使用することができる.
値を設定した後、私たちは?recurseパラメータは、複数のキーの情報を受信するためにGET要求を発行する.
単一のキーの情報も簡単に入手できます.
1つのキーを削除するのも簡単で、DELETEを使用して1つのキーを削除します.完全なパスを指定して個々のキーを削除するか、「?recurse」を使用してすべてのキーを再帰的に削除できます.
同じURIを1つのPUTで要求し、異なるメッセージボディを提供することで、指定されたキーを修正することができ、Consulは検出および設定された操作を提供し、対応する操作は原子である.GETリクエストで提供することで?Cas=パラメータと最新のModifyIndex値を指定することで原子CAS動作を得ることができる.たとえば、「web/key 1」を更新したいとします.
ここで、最初のCAS更新は、最新のModifyIndexが97であるために成功し、2番目の操作は、最新のModifyIndexが97ではないために失敗した.
ModifyIndexを使用して、指定したキー値の変更を待つことができます.たとえば、Key 2の変更を待つとします.
「?index=」パラメータを提供することにより、キーが101より大きいModifyIndexの値を含むまで待つことを要求した.いずれにしても「?wait=5」パラメータにより、クエリーの最大5秒待ちが制限され、現在変更されていない値が返されます.この操作は、キーの更新を効率的に待つことができる.他の同じ方法は、キーセット内の任意のキーが更新されるまで、キーのセットを待つために使用することができる.
ここでの例は,一部のAPIの使用のみを示している.完全なドキュメントが必要な場合は、the/kv/route of the HTTP APIに問い合わせてください.
次に、Consulがサポートする[webインタフェース]()のオプションを見てみましょう.
ここから
この記事では、少なくとも1つのConsulエージェントが実行されていると仮定します.
単純な使用
ストレージ・キー/値ペアが非常に簡単であることを示すために、キー/値ストレージでいくつかのキーを維持します.
プロキシの実行手順では、ローカルプロキシのクエリーを示します.まず、キー/値ストレージにキーが存在しないことを確認します.
$ curl -v http://localhost:8500/v1/kv/?recurse
* About to connect() to localhost port 8500 (#0)
* Trying 127.0.0.1... connected
> GET /v1/kv/?recurse HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: localhost:8500
> Accept: */*
>
< HTTP/1.1 404 Not Found
< X-Consul-Index: 1
< Date: Fri, 11 Apr 2014 02:10:28 GMT
< Content-Length: 0
< Content-Type: text/plain; charset=utf-8
<
* Connection #0 to host localhost left intact
* Closing connection #0
何のキーもないので404の応答が得られ、PUTでいくつかのキーを格納することができます.
$ curl -X PUT -d 'test' http://localhost:8500/v1/kv/web/key1
true
$ curl -X PUT -d 'test' http://localhost:8500/v1/kv/web/key2?flags=42
true
$ curl -X PUT -d 'test' http://localhost:8500/v1/kv/web/sub/key3
true
$ curl http://localhost:8500/v1/kv/?recurse
[{"CreateIndex":97,"ModifyIndex":97,"Key":"web/key1","Flags":0,"Value":"dGVzdA=="},
{"CreateIndex":98,"ModifyIndex":98,"Key":"web/key2","Flags":42,"Value":"dGVzdA=="},
{"CreateIndex":99,"ModifyIndex":99,"Key":"web/sub/key3","Flags":0,"Value":"dGVzdA=="}]
ここでは3つのキーを作成し、それぞれに値「test」を関連付けます.注意値フィールドの戻り値は、UTF 8以外の文字セットを許可するbase 64に基づく符号化である.キー「web/key 2」には42のタグが設定されています.すべてのキーは、64ビット長の整形マーカー値の設定をサポートします.このタグはConsul内部で使用されるものではなく、任意のキー値ペアのメタデータ情報を格納するために使用することができる.
値を設定した後、私たちは?recurseパラメータは、複数のキーの情報を受信するためにGET要求を発行する.
単一のキーの情報も簡単に入手できます.
$ curl http://localhost:8500/v1/kv/web/key1
[{"CreateIndex":97,"ModifyIndex":97,"Key":"web/key1","Flags":0,"Value":"dGVzdA=="}]
1つのキーを削除するのも簡単で、DELETEを使用して1つのキーを削除します.完全なパスを指定して個々のキーを削除するか、「?recurse」を使用してすべてのキーを再帰的に削除できます.
$ curl -X DELETE http://localhost:8500/v1/kv/web/sub?recurse
$ curl http://localhost:8500/v1/kv/web?recurse
[{"CreateIndex":97,"ModifyIndex":97,"Key":"web/key1","Flags":0,"Value":"dGVzdA=="},
{"CreateIndex":98,"ModifyIndex":98,"Key":"web/key2","Flags":42,"Value":"dGVzdA=="}]
同じURIを1つのPUTで要求し、異なるメッセージボディを提供することで、指定されたキーを修正することができ、Consulは検出および設定された操作を提供し、対応する操作は原子である.GETリクエストで提供することで?Cas=パラメータと最新のModifyIndex値を指定することで原子CAS動作を得ることができる.たとえば、「web/key 1」を更新したいとします.
$ curl -X PUT -d 'newval' http://localhost:8500/v1/kv/web/key1?cas=97
true
$ curl -X PUT -d 'newval' http://localhost:8500/v1/kv/web/key1?cas=97
false
ここで、最初のCAS更新は、最新のModifyIndexが97であるために成功し、2番目の操作は、最新のModifyIndexが97ではないために失敗した.
ModifyIndexを使用して、指定したキー値の変更を待つことができます.たとえば、Key 2の変更を待つとします.
$ curl "http://localhost:8500/v1/kv/web/key2?index=101&wait=5s"
[{"CreateIndex":98,"ModifyIndex":101,"Key":"web/key2","Flags":42,"Value":"dGVzdA=="}]
「?index=」パラメータを提供することにより、キーが101より大きいModifyIndexの値を含むまで待つことを要求した.いずれにしても「?wait=5」パラメータにより、クエリーの最大5秒待ちが制限され、現在変更されていない値が返されます.この操作は、キーの更新を効率的に待つことができる.他の同じ方法は、キーセット内の任意のキーが更新されるまで、キーのセットを待つために使用することができる.
次のステップ
ここでの例は,一部のAPIの使用のみを示している.完全なドキュメントが必要な場合は、the/kv/route of the HTTP APIに問い合わせてください.
次に、Consulがサポートする[webインタフェース]()のオプションを見てみましょう.
ここから