# queue-admin **Repository Path**: zhougaoping/queue-admin ## Basic Information - **Project Name**: queue-admin - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Queue Admin Docker 部署指南 ## 📋 概述 Queue Admin 是一个UI可配置的Kafka↔RabbitMQ双向消息转发系统,支持Docker容器化部署。 ## 🏗️ 架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Frontend │ │ Backend │ │ Database │ │ (Nginx) │◄──►│ (Spring Boot) │◄──►│ (MySQL) │ │ Port: 80 │ │ Port: 8080 │ │ Port: 3306 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ┌─────────────────┐ │ Redis │ │ Port: 6379 │ └─────────────────┘ ``` ## 🚀 快速开始 ### 1. 克隆项目 ```bash git clone cd queue-admin ``` ### 2. 配置环境 ```bash # 复制环境配置文件 cp .env.example .env # 根据实际环境修改配置 vim .env ``` ### 3. 构建和启动 ```bash # 给脚本执行权限 chmod +x build.sh deploy.sh # 构建并启动所有服务 ./deploy.sh build ``` ### 4. 访问应用 - 前端界面: http://localhost - 后端API: http://localhost:8080 - API文档: http://localhost:8080/swagger-ui.html ## 📦 Docker镜像 ### 后端镜像 (server/Dockerfile) - 基于: `openjdk:21-jdk-slim` - 端口: 8080 - 健康检查: `/actuator/health` - JVM优化: G1GC, 容器感知 ### 前端镜像 (webapp/Dockerfile) - 构建阶段: `node:18-alpine` - 运行阶段: `nginx:alpine` - 端口: 80 - 特性: Gzip压缩, 静态资源缓存, API代理 ## 🛠️ 部署脚本 ### deploy.sh 命令 ```bash # 启动所有服务 ./deploy.sh start # 停止所有服务 ./deploy.sh stop # 重启服务 ./deploy.sh restart # 查看服务状态 ./deploy.sh status # 查看日志 ./deploy.sh logs [service_name] # 启动开发环境 ./deploy.sh dev # 构建并启动 ./deploy.sh build # 清理所有数据 ./deploy.sh clean # 备份数据 ./deploy.sh backup # 恢复数据 ./deploy.sh restore ``` ## 🔧 配置说明 ### 环境变量 | 变量名 | 默认值 | 说明 | |--------|--------|------| | MYSQL_ROOT_PASSWORD | root | MySQL root密码 | | MYSQL_DATABASE | queue_admin | 数据库名 | | KAFKA_BOOTSTRAP_SERVERS | 192.168.168.23:9092 | Kafka服务器 | | RABBITMQ_HOST | 192.168.168.23 | RabbitMQ服务器 | | JAVA_OPTS | -Xmx1g -Xms512m | JVM参数 | ### 数据卷 | 卷名 | 挂载点 | 说明 | |------|--------|------| | mysql_data | /var/lib/mysql | MySQL数据 | | redis_data | /data | Redis数据 | | ./logs | /app/logs | 应用日志 | ## 🌐 网络配置 ### 端口映射 | 服务 | 内部端口 | 外部端口 | 说明 | |------|----------|----------|------| | Frontend | 80 | 80 | Web界面 | | Backend | 8080 | 8080 | API服务 | | MySQL | 3306 | 3306 | 数据库 | | Redis | 6379 | 6379 | 缓存 | ### 服务依赖 ``` Frontend → Backend → MySQL → Redis ``` ## 🔍 健康检查 所有服务都配置了健康检查: - **Backend**: `curl -f http://localhost:8080/actuator/health` - **Frontend**: `wget --spider http://localhost/health` - **MySQL**: `mysqladmin ping` - **Redis**: `redis-cli ping` ## 📊 监控和日志 ### 查看日志 ```bash # 查看所有服务日志 ./deploy.sh logs # 查看特定服务日志 ./deploy.sh logs backend ./deploy.sh logs frontend ./deploy.sh logs mysql ./deploy.sh logs redis ``` ### 监控指标 - 应用日志: `./logs/` - 容器状态: `docker-compose ps` - 资源使用: `docker stats` ## 🛡️ 安全配置 ### 网络安全 - 使用内部网络通信 - 最小权限原则 - 非root用户运行 ### 数据安全 - 数据卷持久化 - 定期备份 - 敏感信息环境变量化 ## 🔄 开发环境 ### 启动开发环境 ```bash # 只启动依赖服务 ./deploy.sh dev # 本地运行应用 cd server && mvn spring-boot:run cd webapp && npm run dev ``` ### 开发环境包含 - MySQL (localhost:3306) - Redis (localhost:6379) - Kafka (localhost:9092) - RabbitMQ (localhost:5672, 管理界面: localhost:15672) ## 📋 故障排除 ### 常见问题 1. **服务启动失败** ```bash # 检查日志 ./deploy.sh logs # 检查端口占用 netstat -tulpn | grep :8080 ``` 2. **数据库连接失败** ```bash # 检查MySQL状态 docker-compose exec mysql mysqladmin ping # 重启MySQL docker-compose restart mysql ``` 3. **前端无法访问后端** ```bash # 检查网络连接 docker-compose exec frontend curl backend:8080/actuator/health ``` ### 重置环境 ```bash # 完全重置 ./deploy.sh clean ./deploy.sh build ``` ## 📈 性能优化 ### JVM调优 ```bash # 修改 .env 文件 JAVA_OPTS=-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 ``` ### 数据库优化 ```sql -- 在 docker/mysql/init.sql 中添加 SET GLOBAL innodb_buffer_pool_size = 1073741824; -- 1GB ``` ### Nginx优化 ```nginx # 在 webapp/nginx.conf 中调整 worker_processes auto; worker_connections 2048; ``` ## 🔄 更新部署 ### 滚动更新 ```bash # 构建新镜像 ./build.sh # 重启服务 ./deploy.sh restart ``` ### 零停机更新 ```bash # 使用蓝绿部署 docker-compose -f docker-compose.blue.yml up -d # 切换流量后 docker-compose -f docker-compose.green.yml down ``` ## 📞 支持 如有问题,请查看: 1. 应用日志: `./logs/` 2. 容器日志: `./deploy.sh logs` 3. 健康检查: `./deploy.sh status`