【发布时间】:2019-12-25 15:27:52
【问题描述】:
我们有一个具有多个副本的服务,它可以在没有事务和阻塞方法的情况下与存储一起使用。所以我们需要以某种方式通过一些“分片”键来同步多个实例之间的并发请求。现在我们在 Kubernetes 环境中将这个服务作为 ReplicaSet 托管。
您不知道如何做到这一点而不是从头开始实施任何简单的开箱即用方法吗?
以下是我们关于如何做到这一点的几个想法:
将服务部署为 StatefulSet 并实现一些代理 API,该 API 将通过 HTTP 请求中的分片密钥将流量路由到此 StatefulSet 中的特定 pod。在这种情况下,所有应该同步的请求都将由一个实例处理,处理这种情况不会有问题。
将服务部署为 StatefulSet 并在同一服务中实现一些自定义逻辑,以将流量重新路由到特定实例(或该实例上的进程)。据我了解,不可能有抽象实现,它只能在 Kubernetes 环境中工作。
以某种方式将每个 pod IP 暴露在集群外部,并在客户端实现路由逻辑。
只需通过 Redis 等第三方服务实现实例之间的同步即可。
我想尝试将流量路由到特定的 pod。如果您知道如何处理这种情况的标准方法,我将不胜感激。
非常感谢您!
【问题讨论】: