rpcxio / rpcx-etcd

etcd plugin for rpcx
Apache License 2.0
30 stars 24 forks source link

type EtcdV3 struct 的一些疑惑 #30

Closed Owen-Zhang closed 3 months ago

Owen-Zhang commented 4 months ago

EtcdV3 对象中保存了etcd client连接对象, 在keepalive出现异常情况下重新建立etcd client连接对象,现有以下几个疑问:

  1. etcd client连接对象重新创建后, 这个连接对象是否需要保护(锁或者原子操作), 一切与etcd服务交互的业务都需要读取此连接对象
  2. Watch方法中,如果 etcd client连接对象重新创建后 应该用新的连接对象重新watch,由于老的连接对象可能已经close,导制watch机制失效
  3. 在新建 etcd client连接对象前,close老的连接对象是否应该延迟或者作一些保护性机制,不然其它使用到老client的方法会出现异常
Owen-Zhang commented 4 months ago

watch是在出错或者连接断开后, discovery中做了重连(重新watch), 这个开始没有注意到,up主是对的