对于docker-compose
,我有一个非常简单的locust
。它由一个master
(基本上是一个客户端的网络服务器)和一个slave
(一个实际执行负载测试的客户端,这是蝗虫)组成。
version: "3"
services:
locust-master:
image: chapkovski/locust
ports:
- "80:80"
environment:
LOCUST_MODE: master
locust-slave:
image: chapkovski/locust
"links": [
"locust-master"
]
environment:
LOCUST_MODE: slave
LOCUST_MASTER_HOST: locust-master
LOCUST_MASTER_PORT: 5557
一切都适用于AWS ECS。但是现在我想将多个slaves
连接到同一个master
,但我不知道该怎么做。因为当我尝试按比例扩展任务时,由于端口已经很忙,这会导致错误。这很明显,因为扩展此任务定义会使ECS代理在同一端口上具有多个主服务器。
当我尝试拆分主服务器和从属服务器时,我将有两个任务,而我只能扩展“从属”任务,那么它们当然无法通信,并且主服务器看不到任何客户端。 / p>
如果假设我需要20个客户和一个主服务器,那么仅放大“客户”部分的正确方法是什么?
答案 0 :(得分:1)
您无法通过预定义的端口扩展服务,如果这样做,则会出现错误Ports are already busy
。
您必须选择解决此问题。
使用第二个选项,ECS代理会分配一个动态端口,该端口不与任何占用的端口冲突,因此可以扩展所需数量的任务。
understanding-dynamic-port-mapping-in-amazon-ecs-with-application-load-balancer
"portMappings": [
{
"containerPort": 3000,
"hostPort": 0
}
]