Apache StreamPark 项目 Docker Compose 部署指南
2025-07-09 04:18:45作者:沈韬淼Beryl
项目概述
Apache StreamPark 是一个流处理应用开发框架,旨在简化流处理应用的开发、部署和管理过程。它提供了丰富的功能来支持流处理作业的生命周期管理,包括开发、调试、部署和监控等环节。
Docker Compose 部署方案解析
基础配置
部署文件采用了 Docker Compose 3.8 版本规范,定义了一个名为 streampark
的服务:
version: '3.8'
services:
streampark:
image: apache/streampark:2.2.0
这里指定了使用官方提供的 2.2.0 版本镜像,确保部署的一致性和可靠性。
网络端口映射
ports:
- "10000:10000"
- "10030:10030"
端口配置说明:
- 10000 端口:StreamPark 主服务端口,用于 Web 界面和 API 访问
- 10030 端口:通常用于内部服务通信或特定功能模块
环境变量配置
environment:
- TZ=Asia/Shanghai
- DATASOURCE_DIALECT=h2 # h2, mysql, pgsql
关键环境变量:
- 时区设置:确保服务使用 Asia/Shanghai 时区
- 数据源方言:默认使用 H2 嵌入式数据库,也支持 MySQL 和 PostgreSQL
对于生产环境,建议使用 MySQL 或 PostgreSQL:
# MySQL 示例配置
- DATASOURCE_URL=jdbc:mysql://localhost:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
- DATASOURCE_USERNAME=root
- DATASOURCE_PASSWORD=streampark
# PostgreSQL 示例配置
- DATASOURCE_URL=jdbc:postgresql://localhost:5432/streampark?stringtype=unspecified
卷挂载配置
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/hosts:/etc/hosts:ro
- ~/.kube:/root/.kube:ro
挂载说明:
- Docker 套接字:使容器内可以访问宿主机的 Docker 服务
- 主机 hosts 文件:只读方式挂载,确保容器内网络解析与宿主机一致
- Kubernetes 配置:挂载 kubectl 配置文件,支持 Kubernetes 集群管理
其他重要配置
privileged: true
restart: always
privileged: true
:赋予容器特权模式,通常用于需要访问系统设备或执行特殊操作的服务restart: always
:确保服务异常退出后自动重启
健康检查机制
healthcheck:
test: [ "CMD", "curl", "http://streampark:10000" ]
interval: 5s
timeout: 5s
retries: 120
健康检查配置会定期(每5秒)检查服务是否可用,最多重试120次,确保服务完全启动后才认为健康状态正常。
网络配置
networks:
streampark:
driver: bridge
创建了一个名为 streampark
的桥接网络,为后续可能的服务扩展提供网络隔离环境。
部署实践建议
-
数据库选择:
- 开发测试环境:可以使用默认的 H2 数据库
- 生产环境:强烈建议使用 MySQL 或 PostgreSQL
-
持久化考虑:
- 当前配置未包含数据持久化,生产环境应考虑添加数据库数据卷
-
资源限制:
- 生产部署时建议添加 CPU 和内存限制
-
安全建议:
- 修改默认数据库密码
- 考虑添加 TLS 加密配置
-
高可用部署:
- 对于关键业务,应考虑多实例部署和负载均衡
常见问题排查
-
服务启动失败:
- 检查端口冲突
- 查看容器日志
docker-compose logs
-
数据库连接问题:
- 确认数据库服务可用
- 检查连接字符串格式
-
健康检查失败:
- 服务可能需要更长时间启动,可适当增加 retries 值
通过这份 Docker Compose 配置,用户可以快速部署一个功能完整的 StreamPark 服务环境,为流处理应用的开发和管理提供便利。根据实际需求,可以灵活调整配置参数以适应不同场景。