我是用 go sdk 连接的 consul 集群,问题出在注销服务的时候,情况如下:
consul 是通过 helm 部署在 kubernetes 集群上的,部署完有一个无头 Service ,其中包含三个 consul agent 的地址,go sdk 是通过完整的这个 Service 地址来访问 consul ,注册服务是没问题的,但是注销服务的时候出问题了。
无头 service 返回三个 agent 的地址,sdk 连接上之后会时不时的切换连接的地址,这时候就会导致比如我服务启动的时候是连接的 agent 0 ,注册服务也是在 agent 0 上注册的,结果注销的时候连接的是 agent 1 ,但是 agent 1 上并没有注册我当前的服务,找不到 Service Id ,导致注销失败。
研究了一圈没找到解决方案,求助大佬帮忙解惑。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.