type EtcdV3 struct 的一些疑惑
Owen-Zhang opened this issue · comments
Owen-Zhang commented
EtcdV3 对象中保存了etcd client连接对象, 在keepalive出现异常情况下重新建立etcd client连接对象,现有以下几个疑问:
- etcd client连接对象重新创建后, 这个连接对象是否需要保护(锁或者原子操作), 一切与etcd服务交互的业务都需要读取此连接对象
- Watch方法中,如果 etcd client连接对象重新创建后 应该用新的连接对象重新watch,由于老的连接对象可能已经close,导制watch机制失效
- 在新建 etcd client连接对象前,close老的连接对象是否应该延迟或者作一些保护性机制,不然其它使用到老client的方法会出现异常
Owen-Zhang commented
watch是在出错或者连接断开后, discovery中做了重连(重新watch), 这个开始没有注意到,up主是对的