从 Docker 副本 (Docker Swarm) 检索数据

问题描述 投票:0回答:1

我有一个 TCP 服务作为 docker 容器在 Ubuntu VM 上运行。

由于设备负载,我不得不从单个 docker 容器转移到具有 3 个副本的 docker swarm(目前)。

我有一个 Django 服务,它访问此 TCP 服务,通过发送命令(C2D 命令)从连接到该服务的客户端检索数据。使用单个 docker 容器它工作得很好,但现在当我使用 docker 副本时,Django 服务随机命中每个副本,大多数时候我在命中服务 3 次后得到正确的响应(我猜是因为有 3 个副本,所以我必须打3次)

我是否需要更改 docker compose 文件中的某些内容,以允许副本相互交互并返回正确的响应?

我想通过一次点击检索正确的响应。

这是我尝试解决此问题的方法:

我尝试过使用 consul 进行服务发现,但是 docker swarm 没有注册该服务。尽管一个容器在 consul 下运行良好。

docker docker-compose tcp dockerfile docker-swarm
1个回答
0
投票

如果您将负载分散到 3 个容器,那么您将需要查询 3 个容器的状态。

您的 Django 服务可以查询“任务”以检索容器 IP 列表,然后查询每个 IP 以获取其持有的任何客户端数据。

© www.soinside.com 2019 - 2024. All rights reserved.