一、搭建环境背景
最近在利用locust编写压测框架,主要用于模拟公司终端的TcpClient向服务端发送注册报文建立长连接,然后每30s发送一次心跳报文用于维持长连接存在,压测框架搭好之后直接在公司电脑上面进行本地化master-slave压测。开发leader的要求是能够模拟10w个长连接,但是我只能实现1w个长连接的建立和维持。所以这个时候就需要使用到容器技术来解决这个问题,通过dockerfile+docker-compose.yml来创建1个master+6个slave容器进行master-slave多机压测,且实现外网访问master查看性能统计信息。
二、准备工作
1、压测框架准备
针对Master以及Slave环境,分别创建了基于locust的Master压测框架以及Slave压测框架
2、镜像打包准备
我基于基础镜像建立了压测框架运行的环境,包含初始化环境、Master环境以及Slave环境,分别commit为如下镜像
三、编写Dockerfile
1、Master压测环境dockerfile
# 终端TcpClient客户端-Master
FROM luozelin/locust_device_master:v1
LABEL maintainer="luozelin"
# 端口
EXPOSE 8089
# master启动
CMD locust -f /MyProjects/DeviceTcpHttpMaster/RunLab_DeviceTcp_Master.py --master