Etcd

Posted by Qiuyu Zhang on 2024-01-24

常用命令


查看rpc已注册的rpc服务

  • 如果你的服务使用的前缀是/services/grpc/,你可以这样查询:

    1
    etcdctl get /services/grpc/ --prefix --keys-only #这个命令会列出所有以/services/grpc/为前缀的键,这通常包含了注册的服务信息。
  • 如果你想要查看键的值(通常包含服务的地址和端口),可以移除–keys-only选项

    1
    etcdctl get /services/grpc/ --prefix
  • 如果你在编程中需要查询etcd中的gRPC服务信息,可以使用相应的etcd客户端库。以下是使用Go语言etcd客户端库的一个简单例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package main

    import (
    "context"
    "log"
    "go.etcd.io/etcd/client/v3"
    )

    func main() {
    cli, err := clientv3.New(clientv3.Config{
    Endpoints: []string{"localhost:2379"},
    DialTimeout: 5 * time.Second,
    })
    if err != nil {
    log.Fatal(err)
    }
    defer cli.Close()

    // Replace with the appropriate prefix used by your services
    servicePrefix := "/services/grpc/"

    resp, err := cli.Get(context.Background(), servicePrefix, clientv3.WithPrefix())
    if err != nil {
    log.Fatal(err)
    }

    for _, kv := range resp.Kvs {
    log.Printf("key: %s, value: %s\n", kv.Key, kv.Value)
    }
    }