首页
/ Apache StreamPark 项目 Docker Compose 部署指南

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

关键环境变量:

  1. 时区设置:确保服务使用 Asia/Shanghai 时区
  2. 数据源方言:默认使用 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

挂载说明:

  1. Docker 套接字:使容器内可以访问宿主机的 Docker 服务
  2. 主机 hosts 文件:只读方式挂载,确保容器内网络解析与宿主机一致
  3. 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 的桥接网络,为后续可能的服务扩展提供网络隔离环境。

部署实践建议

  1. 数据库选择

    • 开发测试环境:可以使用默认的 H2 数据库
    • 生产环境:强烈建议使用 MySQL 或 PostgreSQL
  2. 持久化考虑

    • 当前配置未包含数据持久化,生产环境应考虑添加数据库数据卷
  3. 资源限制

    • 生产部署时建议添加 CPU 和内存限制
  4. 安全建议

    • 修改默认数据库密码
    • 考虑添加 TLS 加密配置
  5. 高可用部署

    • 对于关键业务,应考虑多实例部署和负载均衡

常见问题排查

  1. 服务启动失败

    • 检查端口冲突
    • 查看容器日志 docker-compose logs
  2. 数据库连接问题

    • 确认数据库服务可用
    • 检查连接字符串格式
  3. 健康检查失败

    • 服务可能需要更长时间启动,可适当增加 retries 值

通过这份 Docker Compose 配置,用户可以快速部署一个功能完整的 StreamPark 服务环境,为流处理应用的开发和管理提供便利。根据实际需求,可以灵活调整配置参数以适应不同场景。