Pod 如何知道它的副本数量

我正在开发一项服务(用 Go 编写),预计会收到大量请求。根据架构,服务的每个 Pod 都应该为特定的客户端提供服务。比方说,如果该服务有 3 个 pod,则分割将类似于 -> A-HI-PQ-Z,其中每个字母都是客户姓名的第一个字母。

但如果这个服务有 4 个 pod,那么 split 可以是 -> A-FG-NO-UV-Z

有没有办法我可以在 Go 代码中知道还有多少个其他副本?

PS:据我所知,一种可能性是有一个environment variablein deployment.yaml. 但有一些方法可以在不改变yaml.


不负相思意
浏览 122回答 1
1回答

明月笑刀无情

根据标题,解决方案是使用StatefulSet每个服务相互了解的地方,并且可以以处理这种情况的方式编写应用程序。然而,对于这个问题,根据提到的细节,一个不使用的好的解决方案StatefulSet是创建一个Service带有sessionAffinity: ClientIP. 根据详细信息的要求是,后续请求必须发送到为前一个请求提供服务的特定 Pod。这可以使用sessionAffinity字段进行配置。当新客户端连接时,将在执行负载平衡后service选择一个。pod发布该内容后,所有后续请求都将仅针对该内容pod。可以使用 进一步配置SessionAffinityConfig。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go