# brx-java-common **Repository Path**: rx_admin/brx-java-common ## Basic Information - **Project Name**: brx-java-common - **Description**: brx新平台启动公用文件 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-07 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BRX Java Common BRX Java 微服务应用部署配置集合,提供完整的容器化部署方案,支持 Docker、Kubernetes 和 Gitee CI/CD。 ## 项目概述 本项目包含微服务应用的部署配置和启动脚本,支持 Docker 容器化部署、Kubernetes 集群部署以及 Gitee CI/CD 自动化部署。集成了多种中间件和服务组件,提供高可用、可扩展的应用运行环境。 ## 技术栈 - **基础环境**: Java 8/21 (Alpine Linux) - **微服务框架**: - Spring Boot/Spring Cloud - Dubbo (RPC框架) - Nacos (服务注册与配置中心) - **数据存储**: - MySQL 8.0 - Redis - OSS (对象存储服务) - **任务调度**: XXL-Job - **日志系统**: PlumeLog - **Web服务器**: Nginx - **容器化**: Docker, Kubernetes - **CI/CD**: Gitee ## 项目结构 ``` brx-java-common/ ├── key.jar # 授权密钥生成工具 ├── common/ # 通用配置 │ ├── Dockerfile # Docker镜像构建配置 │ ├── Start # 启动脚本 │ ├── Start.sh # 启动脚本(Shell版) │ ├── Build.sh # Maven构建脚本 │ └── MavenBuild.sh # Maven构建脚本(新版) ├── gitee/ # Gitee CI/CD配置 │ ├── java/ │ │ ├── 3/ │ │ │ ├── GiteeRun.sh # Gitee部署脚本 │ │ │ └── Run.sh # 运行脚本 │ │ └── Dockerfile # Java服务Dockerfile ├── seres/ # Seres环境配置 │ └── k8s/ # Kubernetes配置 │ ├── java/ │ │ ├── Dockerfile │ │ ├── MavenBuild.sh # Maven构建脚本 │ │ └── java.pem # 证书文件 │ └── web/ │ ├── Dockerfile │ ├── nginx.conf # Nginx配置 │ └── Start.sh ├── web/ # Web服务配置 │ ├── Dockerfile # Web服务Dockerfile │ ├── nginx.conf # Nginx配置 │ └── Start.sh # Web服务启动脚本 ├── find_dubbo_port.sh # Dubbo端口查找脚本 ├── find_port.sh # 端口查找脚本 └── LICENSE # 许可证文件 ``` ## 快速开始 ### 前置条件 - Docker 19.03+ - Docker Compose 1.27+ - Kubernetes 1.18+ (如使用K8s部署) - Maven 3.6+ (构建时) - 至少2GB可用内存 - 至少10GB可用磁盘空间 ### Docker 部署 1. 构建镜像: ```bash cd common docker build -t brx-java-app . ``` 2. 运行容器: ```bash docker run -d \ -e NACOS_HOST=127.0.0.1 \ -e NACOS_PORT=8848 \ -e DBHOST=127.0.0.1 \ -e DBPORT=3306 \ -e DBNAME=brx_db \ -e DBUSERNAME=root \ -e DBPWD=password \ -p 8080:8080 \ --name brx-java-app \ brx-java-app ``` ### Kubernetes 部署 ```bash cd seres/k8s kubectl apply -f java/ kubectl apply -f web/ ``` ### Gitee CI/CD 部署 在 Gitee Pipeline 中配置环境变量后,脚本会自动: 1. 构建 Maven 项目 2. 构建 Docker 镜像 3. 运行 Docker 容器 ## 配置指南 ### 启动脚本 (Start.sh) 应用启动脚本支持以下功能: - **JVM 参数动态配置**:根据内存大小自动调整 JVM 参数 - **GC 日志优化**:根据 JDK 版本自动选择 GC 日志参数 - **通用环境变量**:通过 `SPRING_OPTS` 添加任意 Spring 系统属性 - **多中间件支持**:Nacos、Redis、MySQL、OSS、XXL-Job、PlumeLog ### 环境变量 #### 基础配置 | 变量名 | 描述 | 默认值 | |--------|------|--------| | `XM` | JVM 内存大小 | `4024M` | | `JAR_FILE` | JAR 文件名 | `app.jar` | | `EXPOSE_PORT` | 服务端口 | - | | `PROFILES` | Spring Profile | - | | `SPRING_OPTS` | 通用 Spring 参数 | - | | `COMMON_ENV` | 通用 JVM 参数 | - | #### Nacos 配置 | 变量名 | 描述 | |--------|------| | `NACOS_HOST` | Nacos 主机地址 | | `NACOS_PORT` | Nacos 端口 | | `NACOSNAMESPACE` | Nacos 命名空间 | | `NACOS_USERNAME` | Nacos 用户名 | | `NACOS_PASSWORD` | Nacos 密码 | #### 数据库配置 | 变量名 | 描述 | |--------|------| | `DBHOST` | 数据库主机 | | `DBPORT` | 数据库端口 | | `DBNAME` | 数据库名称 | | `DBUSERNAME` | 数据库用户名 | | `DBPWD` | 数据库密码 | #### Redis 配置 | 变量名 | 描述 | |--------|------| | `REDIS_HOST` | Redis 主机 | | `REDIS_PORT` | Redis 端口 | | `REDIS_PASSWORD` | Redis 密码 | | `REDIS_DATABASE` | Redis 数据库 | | `REDIS_USERNAME` | Redis 用户名 (Redis 6+) | | `REDIS_SSLENABLED` | 启用 SSL | #### XXL-Job 配置 | 变量名 | 描述 | |--------|------| | `XXLJOBEXECUTORADDRESS` | XXL-Job 管理地址 | | `XXLJOBACCESSTOKEN` | XXL-Job 访问令牌 | | `XXLJOBEXECUTORAPPNAME` | 执行器名称 | | `XXLJOBEXECUTORIP` | 执行器 IP | | `XXLJOBEXECUTORPORT` | 执行器端口 | #### Plumelog 日志配置 | 变量名 | 描述 | |--------|------| | `PLUMELOGENABLED` | 是否启用 | | `PLUMELOGMODEL` | 日志模式 (lite/redis/kafka) | | `PLUMELOGREDISHOST` | Redis 主机 (redis模式) | | `PLUMELOGREDISPORT` | Redis 端口 | | `PLUMELOGREDISPASSWORD` | Redis 密码 | | `PLUMELOGREDISDB` | Redis 数据库 | #### OSS 对象存储配置 | 变量名 | 描述 | |--------|------| | `OSS_ENDPOINT` | OSS 端点 | | `OSS_ACCESS_KEY` | 访问密钥 | | `OSS_SECRET_KEY` | 密钥 | | `OSS_BUCKET_NAME` | 存储桶名称 | | `OSS_TYPE` | OSS 类型 | | `OSS_TYPE_WHITE` | 允许的文件类型 | #### 其他配置 | 变量名 | 描述 | |--------|------| | `PROJECT_NAME` | 项目名称 | | `JC_JASYPT_ENCRYPTOR_PASSWORD` | Jasypt 加密密码 | | `LOCALHOST_HOST` | 本地主机 IP | | `WEBHOST` | Web 主机地址 | ### 构建脚本配置 #### MavenBuild.sh | 变量名 | 描述 | 默认值 | |--------|------|--------| | `SERVICE_PATH` | 服务路径(指定时构建单个模块) | - | | `modulePath` | 模块路径 | `brx-service` | | `useEnvDbConfig` | 是否使用环境变量配置数据库 | `true` | #### GiteeRun.sh | 变量名 | 描述 | 默认值 | |--------|------|--------| | `serviceName` | 服务名称 | `zipName` | | `useEnvDbConfig` | 是否使用环境变量配置数据库 | `true` | ## 特性 ### 1. 动态 JVM 优化 根据内存大小自动调整 JVM 参数: | 内存大小 | Metaspace | Survivor Ratio | GC 线程数 | |---------|-----------|---------------|----------| | < 1GB | 128m | 6 | 2 | | 1-2GB | 256m | 8 | 4 | | 2-4GB | 384m | 8 | 6 | | 4-8GB | 512m | 8 | 8 | | 8GB+ | 768m | 10 | 12 | ### 2. 通用环境变量支持 通过 `SPRING_OPTS` 添加任意 Spring 系统属性,无需修改 Dockerfile: ```bash docker run -e SPRING_OPTS="-Dcustom.config=value -Danother.setting=test" ... ``` ### 3. 变量优先级支持 GiteeRun.sh 支持通过 `_NEW` 后缀覆盖变量: ```bash export USER_NEW="yes" export DBHOST_NEW="192.168.1.100" ``` ## 常见问题 ### 1. 应用无法连接到数据库 **解决方案:** - 检查数据库连接参数是否正确 - 确认数据库服务是否正常运行 - 检查网络连接是否通畅 - 如果不使用环境变量配置,设置 `useEnvDbConfig=false` ### 2. Nacos 服务发现失败 **解决方案:** - 确认 Nacos 服务是否正常运行 - 检查 Nacos 连接参数是否正确 - 查看应用日志中的相关错误信息 ### 3. JVM 参数不兼容 **解决方案:** - 脚本会根据 JDK 版本自动选择兼容的参数 - JDK8 使用传统 GC 日志参数 - JDK9+ 使用统一日志框架 - 检查日志中的 JVM 错误信息 ### 4. Docker 构建失败 **解决方案:** - 检查 Dockerfile 语法 - 确认基础镜像是否可用 - 查看构建日志中的错误信息 ## 版本历史 ### v2.0.0 (2025-02) - 重构启动脚本,添加动态 JVM 优化 - 新增通用环境变量支持 `SPRING_OPTS` - 优化 GC 日志配置 - 添加 `useEnvDbConfig` 变量控制数据库配置 - 支持变量优先级 `_NEW` 后缀 - 优化 MavenBuild.sh 构建脚本 ### v1.0.0 (2023-10) - 初始版本发布 - 支持 Docker 和 Kubernetes 部署 - 集成 Nacos 服务发现 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建 Pull Request ## 维护与支持 如有问题,请联系 BRX 技术支持团队。 ## 许可证 本项目受许可证保护,详情请参阅 LICENSE 文件。 ## 致谢 - 感谢所有为本项目做出贡献的开发者 - 特别感谢提供技术支持的合作伙伴