consul 是通过 helm 部署在 kubernetes 集群上的,部署完有一个无头 Service ,其中包含三个 consul agent 的地址,go sdk 是通过完整的这个 Service 地址来访问 consul ,注册服务是没问题的,但是注销服务的时候出问题了。
无头 service 返回三个 agent 的地址,sdk 连接上之后会时不时的切换连接的地址,这时候就会导致比如我服务启动的时候是连接的 agent 0 ,注册服务也是在 agent 0 上注册的,结果注销的时候连接的是 agent 1 ,但是 agent 1 上并没有注册我当前的服务,找不到 Service Id ,导致注销失败。
研究了一圈没找到解决方案,求助大佬帮忙解惑。