erp-java/docs/DEPLOYMENT_INFRASTRUCTURE.md

250 lines
4.6 KiB
Markdown
Raw Permalink 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.

# 基础设施部署文档
## 概述
本项目使用 Docker Compose 管理所有基础设施服务MySQL、Redis、Nacos、RocketMQ、Seata 等)。
**重要:国内环境无法直接从 Docker Hub 拉取镜像,需要配置国内镜像加速器。**
---
## 前提条件
### 1. 安装 Docker 和 Docker Compose
```bash
# 安装 Docker
curl -fsSL https://get.docker.com | bash
# 安装 Docker Compose
apt-get install -y docker-compose
# 验证安装
docker --version
docker-compose --version
```
### 2. 配置国内 Docker 镜像加速
创建或编辑 `/etc/docker/daemon.json`
```json
{
"registry-mirrors": [
"https://dockerproxy.cn",
"https://docker.rainbond.cc",
"https://docker.m.daocloud.io",
"https://docker.wanpeng.top"
],
"storage-driver": "overlay2"
}
```
然后重启 Docker
```bash
systemctl restart docker
```
---
## 基础设施服务列表
| 服务 | 镜像 | 端口 | 说明 |
|------|------|------|------|
| MySQL | mysql:8.0 | 3307 | 数据库 |
| Redis | redis:7-alpine | 6379 | 缓存 |
| Nacos | nacos/nacos-server:v2.2.3 | 8848, 9848, 9849 | 服务注册与配置中心 |
| RocketMQ | apache/rocketmq:5.1.4 | 9876, 10909, 10911 | 消息队列 |
| Seata | seataio/seata-server:1.7.1 | 8091, 7091 | 分布式事务 |
---
## 启动基础设施
### 方法一:使用 Docker Compose推荐
```bash
# 进入项目目录
cd /path/to/erp-java-backend
# 启动所有基础设施服务(不包括业务服务)
docker-compose up -d mysql redis nacos rocketmq rocketmq-broker rocketmq-console seata
# 启动所有基础设施(完整)
docker-compose up -d
```
### 方法二:逐个启动
```bash
# 1. 启动 MySQL
docker-compose up -d mysql
# 2. 启动 Redis
docker-compose up -d redis
# 3. 等待 MySQL 健康检查通过后,启动 Nacos
docker-compose up -d nacos
# 4. 启动 RocketMQ
docker-compose up -d rocketmq rocketmq-broker
```
### 验证服务状态
```bash
# 查看运行中的容器
docker-compose ps
# 查看容器日志
docker-compose logs -f nacos
# 健康检查
curl http://localhost:8848/nacos/
```
---
## Nacos 下载地址(国内镜像)
如果需要手动下载 Nacos Server以下是国内可用的镜像源
### 华为云镜像(推荐)
```
https://repo.huaweicloud.com/alibaba/nacos/2.2.3/nacos-server-2.2.3.tar.gz
```
### 中科大镜像
```
https://mirrors.ustc.edu.cn/github/alibaba/nacos/v2.2.3/nacos-server-2.2.3.tar.gz
```
### 腾讯云镜像
```
https://mirrors.cloud.tencent.com/github/alibaba/nacos/2.2.3/nacos-server-2.2.3.tar.gz
```
### Maven 中央仓库
```
https://repo.maven.apache.org/maven2/com/alibaba/nacos/nacos-server/2.2.3/nacos-server-2.2.3.tar.gz
```
### GitHub 直链(需要代理)
```
https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
```
### Nacos Docker 镜像
```bash
# Docker Hub 镜像(需要配置加速器)
docker pull nacos/nacos-server:v2.2.3
# 或者使用国内镜像
docker pull dockerpull.cn/nacos/nacos-server:v2.2.3
```
---
## 启动后配置
### Nacos 控制台
1. 访问 http://localhost:8848/nacos
2. 默认用户名:`nacos`
3. 默认密码:`nacos`
### 创建配置
Nacos 启动后会自动创建 `nacos_config` 数据库,但可能需要手动执行初始化脚本:
```bash
# 查看 Nacos 初始化 SQL
ls /root/.openclaw/workspace/erp-java-backend/nacos/init/
```
---
## 常见问题
### 1. Docker Hub 无法访问
**问题**`Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp`
**解决**
1. 配置国内 Docker 镜像加速器(见上文)
2. 或使用代理
### 2. Nacos 启动失败
**检查**
```bash
# 查看 Nacos 日志
docker-compose logs nacos
# 检查 MySQL 是否就绪
docker-compose ps mysql
```
### 3. 服务无法连接到 Nacos
**检查**
1. Nacos 是否已启动并通过健康检查
2. 网络是否正确配置
3. 防火墙是否开放 8848 端口
### 4. MySQL 连接失败
**检查**
```bash
# 查看 MySQL 日志
docker-compose logs mysql
# 测试连接
mysql -h localhost -P 3307 -uroot -proot123456
```
---
## 停止服务
```bash
# 停止所有服务(保留数据)
docker-compose stop
# 停止并删除容器(保留数据卷)
docker-compose down
# 停止并删除所有数据(危险!)
docker-compose down -v
```
---
## 端口占用检查
如果端口被占用:
```bash
# Linux
netstat -tlnp | grep 8848
lsof -i :8848
# 或使用 ss
ss -tlnp | grep 8848
```
---
## 资源要求
| 服务 | 最低内存 | 推荐内存 |
|------|---------|---------|
| MySQL | 512MB | 1GB |
| Redis | 128MB | 256MB |
| Nacos | 512MB | 1GB |
| RocketMQ | 1GB | 2GB |
| Seata | 256MB | 512MB |
**总计:约 2.5GB - 4GB**