github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/extend/etcd/README.md (about)

     1  # etcd
     2  
     3  对业内的etcd客户端进行配置化封装,用于简化获取
     4  
     5  全部配置
     6  ```yaml
     7  base:
     8    etcd:
     9      # etcd的服务ip:port列表   
    10      endpoints:
    11        - 10.10.10.10:2379
    12        - 10.10.10.11:2379
    13      # 用户
    14      username: userxxx
    15      # 密码
    16      password: xxxxx
    17      # 自动同步间隔:是用其最新成员更新端点的间隔;默认为0,即禁用自动同步;配置示例:1s、1000ms
    18      auto-sync-interval: 5s
    19      # 拨号超时:是指连接失败后的超时时间;配置示例:1s、1000ms
    20      dial-timeout: 5s
    21      # 拨号保持连接时间:是客户端ping服务器以查看传输是否连接的时间;配置示例:1s、1000ms
    22      dial-keep-alive-time: 5s
    23      # 拨号保持连接超时:是客户端等待响应保持连接探测的时间,如果在此时间内没有收到响应,则连接将被关闭;配置示例:1s、1000ms
    24      dial-keep-alive-timeout: 5s
    25      # 拨号重试策略: 默认为空:表示默认不重试;1、2、3...表示重试多少次;always:表示一直重试
    26      dial-retry: 1
    27      # 最大呼叫:发送MSG大小是客户端请求发送的字节限制;默认:(2MB)2 * 1024 * 1024
    28      max-call-send-msg-size: 2 * 1024 * 1024
    29      # 最大调用recv MSG大小是客户端响应接收限制;默认:math.MaxInt32
    30      max-call-recv-msg-size: 10000000
    31      # 当设置拒绝旧集群时,将拒绝在过时的集群上创建客户端
    32      reject-old-cluster: false
    33      # 设置允许无流时将允许客户端发送keepalive ping到服务器没有任何活动流rp cs
    34      permit-without-stream: false
    35  ```
    36  提供etcd的client获取api `NewEtcdClient`
    37  ```go
    38  func Test1(t *testing.T) {
    39      etcdClient, _ := etcd.NewEtcdClient()
    40  
    41      ctx := context.Background()
    42      etcdClient.Put(ctx, "gobase.k1", "testValue")
    43      rsp, _ := etcdClient.Get(ctx, "gobase.k1")
    44  }
    45  ```
    46  
    47  ### 示例
    48  配置示例
    49  ```yaml
    50  base:
    51    etcd:
    52      # 是否启用etcd
    53      enable: true
    54      # etcd的服务ip:port列表
    55      endpoints:
    56        - 10.10.10.10:2379
    57      # 用户
    58      username: xxx
    59      # 密码
    60      password: xxx
    61      # 拨号超时:是指连接失败后的超时时间;配置示例:1s、1000ms
    62      dial-timeout: 5s
    63  ```
    64  代码示例
    65  ```go
    66  func Test1(t *testing.T) {
    67      etcdClient, _ := etcd.NewEtcdClient()
    68      
    69      ctx := context.Background()
    70      etcdClient.Put(ctx, "gobase.k1", "testValue")
    71      rsp, _ := etcdClient.Get(ctx, "gobase.k1")
    72  }
    73  ```