Docker Compose网络中Locust无法访问Spring Boot应用端点求助
解决Locust无法访问Spring Boot端点的方案
先验证容器内网络与应用状态
- 进入Locust容器,手动测试连通性:
根据返回结果定位问题:# 进入locust容器 docker exec -it <locust-container-name> bash # 测试能否解析app主机并访问端口 ping app curl http://app:8080/api/dashboard/colas-value- 连接拒绝:说明Spring Boot应用未启动或端口监听错误
- 404:说明请求路径错误或Spring Boot未注册该端点
- 正常返回:说明Locust测试脚本的路径配置有误
- 进入Locust容器,手动测试连通性:
修正应用启动就绪判断逻辑
depends_on仅保证容器启动顺序,不等待Spring Boot应用完全就绪。给app服务添加健康检查,确保Locust在应用就绪后再启动:services: app: ... healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/dashboard/colas-value"] interval: 10s timeout: 5s retries: 5 locust: ... depends_on: app: condition: service_healthy检查Spring Boot核心配置
- 确认
server.port为8080,无环境变量覆盖:查看项目的application.properties或application.yml - 检查是否设置了
server.servlet.context-path,如果有,需在LOCUST_HOST或请求路径中补充该上下文路径 - 进入app容器,本地测试端点是否可用:
docker exec -it <app-container-name> bash curl http://localhost:8080/api/dashboard/colas-value
- 确认
验证Locust测试脚本路径
确保Locust任务中的请求路径为完整相对路径:from locust import HttpUser, task class WebsiteUser(HttpUser): @task def get_colas_value(self): self.client.get("/api/dashboard/colas-value") # 路径需与端点完全匹配注意路径开头的斜杠,以及是否遗漏了Spring Boot的上下文路径(如果有设置)
内容的提问来源于stack exchange,提问作者Bihi23
相关产品推荐
相关产品推荐

