Files
makemd/docs/03_Deployment_Guide.md
2026-03-30 16:55:04 +08:00

364 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 部署指南
## 1. 环境要求
### 1.1 硬件要求
- **CPU**: 至少 2 核
- **内存**: 至少 4GB
- **磁盘**: 至少 50GB 可用空间
### 1.2 软件要求
- **Java**: JDK 17 或更高版本
- **MySQL**: 8.0 或更高版本
- **Redis**: 6.0 或更高版本
- **Maven**: 3.6 或更高版本
## 2. 安装步骤
### 2.1 安装 Java
**Windows 系统**:
1. 下载 JDK 17 安装包:[Oracle JDK 17](https://www.oracle.com/java/technologies/downloads/#java17)
2. 运行安装包,按照提示完成安装
3. 配置环境变量:
- 右键点击「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中添加 `JAVA_HOME`,值为 JDK 安装目录
- 在「系统变量」的 `Path` 中添加 `%JAVA_HOME%\bin`
4. 验证安装:打开命令提示符,运行 `java -version`,显示 JDK 版本信息
**Linux 系统**:
1. 下载 JDK 17 安装包:
```bash
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
```
2. 安装 JDK
```bash
sudo rpm -ivh jdk-17_linux-x64_bin.rpm
```
3. 验证安装:
```bash
java -version
```
### 2.2 安装 MySQL
**Windows 系统**:
1. 下载 MySQL 8.0 安装包:[MySQL Community Server](https://dev.mysql.com/downloads/mysql/)
2. 运行安装包,按照提示完成安装
3. 配置 MySQL
- 启动 MySQL 服务
- 登录 MySQL修改 root 密码
- 创建数据库:`CREATE DATABASE crawlful_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
**Linux 系统**:
1. 安装 MySQL
```bash
sudo yum install mysql-server
```
2. 启动 MySQL 服务:
```bash
sudo systemctl start mysqld
```
3. 配置 MySQL
```bash
sudo mysql_secure_installation
```
4. 创建数据库:
```bash
mysql -u root -p
CREATE DATABASE crawlful_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
### 2.3 安装 Redis
**Windows 系统**:
1. 下载 Redis 安装包:[Redis for Windows](https://github.com/tporadowski/redis/releases)
2. 运行安装包,按照提示完成安装
3. 启动 Redis 服务:
```bash
redis-server
```
**Linux 系统**:
1. 安装 Redis
```bash
sudo yum install redis
```
2. 启动 Redis 服务:
```bash
sudo systemctl start redis
```
### 2.4 安装 Maven
**Windows 系统**:
1. 下载 Maven 安装包:[Apache Maven](https://maven.apache.org/download.cgi)
2. 解压安装包到指定目录
3. 配置环境变量:
- 右键点击「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中添加 `MAVEN_HOME`,值为 Maven 安装目录
- 在「系统变量」的 `Path` 中添加 `%MAVEN_HOME%\bin`
4. 验证安装:打开命令提示符,运行 `mvn -version`,显示 Maven 版本信息
**Linux 系统**:
1. 安装 Maven
```bash
sudo yum install maven
```
2. 验证安装:
```bash
mvn -version
```
## 3. 项目配置
### 3.1 数据库配置
编辑 `src/main/resources/application.yml` 文件,修改数据库连接信息:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/crawlful_hub?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
```
### 3.2 Redis 配置
编辑 `src/main/resources/application.yml` 文件,修改 Redis 连接信息:
```yaml
spring:
redis:
host: localhost
port: 6379
password:
database: 0
```
### 3.3 JWT 配置
编辑 `src/main/resources/application.yml` 文件,修改 JWT 配置:
```yaml
spring:
security:
jwt:
secret: your-secret-key
expiration: 86400000
```
### 3.4 服务器配置
编辑 `src/main/resources/application.yml` 文件,修改服务器配置:
```yaml
server:
port: 3001
servlet:
context-path: /api
```
## 4. 构建与部署
### 4.1 构建项目
1. 进入项目目录:
```bash
cd d:\trae_projects\makemd\makemd\serverjava
```
2. 执行 Maven 构建:
```bash
mvn clean package
```
3. 构建成功后,在 `target` 目录中生成 `serverjava-0.0.1-SNAPSHOT.jar` 文件。
### 4.2 运行项目
**方法一:直接运行**
1. 进入 `target` 目录:
```bash
cd target
```
2. 运行 jar 文件:
```bash
java -jar serverjava-0.0.1-SNAPSHOT.jar
```
**方法二:作为服务运行**
**Windows 系统**:
1. 创建服务脚本:
```batch
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk-17
set PATH=%JAVA_HOME%\bin;%PATH%
java -jar d:\trae_projects\makemd\makemd\serverjava\target\serverjava-0.0.1-SNAPSHOT.jar
```
2. 将脚本保存为 `serverjava.bat`,然后运行。
**Linux 系统**:
1. 创建服务文件:
```bash
sudo nano /etc/systemd/system/serverjava.service
```
2. 添加以下内容:
```
[Unit]
Description=ServerJava Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -jar /path/to/serverjava/target/serverjava-0.0.1-SNAPSHOT.jar
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
3. 启动服务:
```bash
sudo systemctl start serverjava
sudo systemctl enable serverjava
```
## 5. 验证部署
1. 打开浏览器,访问 `http://localhost:3001/api/api-docs`,查看 API 文档。
2. 访问 `http://localhost:3001/api/v1/monitoring/health`,查看系统健康状态。
3. 访问 `http://localhost:3001/api/v1/monitoring/ping`,测试系统响应。
## 6. 日志管理
### 6.1 日志配置
编辑 `src/main/resources/logback.xml` 文件,修改日志配置:
```xml
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/server.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/server.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>
```
### 6.2 日志查看
**Windows 系统**:
1. 进入项目目录,查看日志文件:
```bash
cd d:\trae_projects\makemd\makemd\serverjava
type logs\server.log
```
**Linux 系统**:
1. 进入项目目录,查看日志文件:
```bash
cd /path/to/serverjava
tail -f logs/server.log
```
## 7. 故障排查
### 7.1 常见问题
1. **数据库连接失败**
- 检查数据库服务是否运行
- 检查数据库连接配置是否正确
- 检查数据库用户权限是否正确
2. **Redis 连接失败**
- 检查 Redis 服务是否运行
- 检查 Redis 连接配置是否正确
3. **端口被占用**
- 检查端口是否被其他服务占用
- 修改 `application.yml` 中的端口配置
4. **JWT 验证失败**
- 检查 JWT 密钥是否正确
- 检查 JWT 令牌是否过期
### 7.2 调试方法
1. **查看日志**:查看 `logs/server.log` 文件,了解系统运行状态和错误信息。
2. **使用 API 文档**:访问 `http://localhost:3001/api/api-docs`,测试 API 接口。
3. **使用健康检查**:访问 `http://localhost:3001/api/v1/monitoring/health`,检查系统健康状态。
4. **使用 Ping 测试**:访问 `http://localhost:3001/api/v1/monitoring/ping`,测试系统响应。
## 8. 升级与维护
### 8.1 升级步骤
1. 停止服务:
```bash
sudo systemctl stop serverjava
```
2. 备份数据:
```bash
mysqldump -u root -p crawlful_hub > crawlful_hub_backup.sql
```
3. 拉取最新代码:
```bash
git pull
```
4. 重新构建项目:
```bash
mvn clean package
```
5. 启动服务:
```bash
sudo systemctl start serverjava
```
### 8.2 维护计划
1. **定期备份**:定期备份数据库和配置文件。
2. **更新依赖**:定期更新项目依赖,确保系统安全。
3. **监控系统**:使用监控工具监控系统运行状态,及时发现和处理异常。
4. **性能优化**:根据系统运行情况,优化数据库查询、缓存策略等。
## 9. 总结
本部署指南详细介绍了 Crawlful Hub 项目的部署方法、环境要求和配置步骤。通过本指南,您可以快速部署和维护系统,确保系统的稳定运行。