slime-io / slime

An intelligent ServiceMesh manager based on Istio
https://slime-io.github.io/
Other
420 stars 79 forks source link

meshreg: fix zk reconnection mechanism failure #466

Closed believening closed 7 months ago

believening commented 7 months ago
  1. 根据 go-zk 的实现,正确连接到 zk 时的状态应该是 HasSession.
  2. 链接到 zk 但是创建 session 失败,状态转移会是 Connecting->Connected->[Expired]->Disconnnected,并触发异步执行的重连回调。通常此时在 slime 同时运行着链接状态确认逻辑,确认失败,同样会尝试建立新的的链接,也会导致循环重连的情况。

故确认链接正常时仅依据 HasSession 状态,并在重连被触发时,对状态进行二次确认后再执行。