ETCD:クライアントv 3
2173 ワード
原文アドレス:etcd/clientv 3
インストール
スタート
作成クライアントは
etcd v 3は
完全な互換性のために、etcd'sのvendoredパッケージを使用して構築することをお勧めします.
エラー処理
etcdクライアントは、2つのタイプのエラーを返します. context error :canceled or deadline exceeded. gRpc error:api/v 3 rpc/rpctypesを見る.
クライアントエラーの処理例を示します.
モニタリング
etcdクライアントはgo-grpc-prometheusを通じてRPCモニタリング指標を選択し、例を見ることができる.
ネーミングスペース
namespaceパケットは、
要求サイズの制限
クライアント要求サイズ制限は、
例
より多くのコード例はGoDocから発見できる.
etcd/clientv3
v 3バージョンのGo etcd公式クライアントインストール
go get go.etcd.io/etcd/clientv3
スタート
作成クライアントは
clientv3.New
を使用します.cli, err := clientv3.New(clientv3.Config{
Endpoints: []string{"localhost:2379", "localhost:22379", "localhost:32379"},
DialTimeout: 5 * time.Second,
})
if err != nil {
// handle error!
}
defer cli.Close()
etcd v 3は
gRPC
を使用してリモートプログラム呼び出しを行い、clientv3
はgrpc-go
を使用してetcdを接続する.クライアントを使用した後に閉じていることを確認し、クライアントが閉じていない場合は、接続が漏洩するgoroutines
があります.タイムアウト時間を指定し、context.WithTimeout
でAPIsを使用します.ctx, cancel := context.WithTimeout(context.Background(), timeout)
resp, err := cli.Put(ctx, "sample_key", "sample_value")
cancel()
if err != nil {
// handle error!
}
// use the response
完全な互換性のために、etcd'sのvendoredパッケージを使用して構築することをお勧めします.
golang/dep
のようなツールを使用して、vendorディレクトリ内にあります.エラー処理
etcdクライアントは、2つのタイプのエラーを返します.
クライアントエラーの処理例を示します.
resp, err := cli.Put(ctx, "", "")
if err != nil {
switch err {
case context.Canceled:
log.Fatalf("ctx is canceled by another routine: %v", err)
case context.DeadlineExceeded:
log.Fatalf("ctx is attached with a deadline is exceeded: %v", err)
case rpctypes.ErrEmptyKey:
log.Fatalf("client-side error: %v", err)
default:
log.Fatalf("bad cluster endpoints, which are not etcd servers: %v", err)
}
}
モニタリング
etcdクライアントはgo-grpc-prometheusを通じてRPCモニタリング指標を選択し、例を見ることができる.
ネーミングスペース
namespaceパケットは、
clientv3
インタフェースカプセル化透明分離クライアントがユーザ定義に要求するプレフィックスを提供する.要求サイズの制限
クライアント要求サイズ制限は、
clientv3.Config.MaxCallSendMsgSize
およびMaxCallRecvMsgSize
によって構成される.値が与えられていない場合、クライアント要求送信制限は、gRPC負荷のデフォルト2 MBを含む.受信制限のデフォルトはmath.MaxInt32
です.例
より多くのコード例はGoDocから発見できる.