Kubernetes Java Spring微服务-为每个容器/服务副本生成唯一的标识符

时间:2019-01-20 12:28:53

标签: java spring tomcat kubernetes microservices

我正在Java Spring MVC中使用微服务。使用Kubernetes,包含此微服务应用程序逻辑的Pod可以根据传入负载进行扩展/复制。简而言之,我的应用程序可以运行2个或更多副本。

我需要具有一个特定的标识符机制,该机制描述包含该应用程序的特定pod副本/容器。我当时想在运行时生成一个随机数作为描述符,并将其作为标识符存储到容器中。但是我想知道是否有更好的方法,考虑到我正在与Spring,TomCat和Kubernetes一起工作,我希望某些技术堆栈可以为我做类似的事情吗?

1 个答案:

答案 0 :(得分:1)

Kubernetes可以做到这一点。每个Pod都有一个唯一的名称,您可以将其作为主机名或通过环境变量进行访问。如果您使用标准的Deployment资源,但是如果Pod死亡并重新创建,则该资源可能会更改。在我看来,您想要一个StatefulSet,其中为Pod分配了唯一的序号索引,并在重新创建时保留它们-https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-identity