Files
gangyan/数据库配置汇总.md

363 lines
11 KiB
Markdown
Raw Permalink Normal View History

# 甘言AI对话系统 - 数据库及服务配置汇总
> 本文档汇总了项目所有数据库和服务的配置信息,方便新同事快速了解系统架构
> 更新时间2026-03-26
---
## 一、系统架构概览
```
┌─────────────────────────────────────────────────────────────────┐
│ 甘言AI对话系统 │
├─────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ Vue前端 │ │ Java后端 │ │Python RAG│ │ 向量模型API │ │
│ │ :3000 │ │ :8099 │ │ :7861 │ │ :3000 (bge-m3) │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └──────────────────┘ │
│ └─────────────┴─────────────┘ │
│ │ │
│ ┌─────────────────┼─────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│ │ MySQL │ │ Redis │ │ Milvus │ │
│ │ :33306 │ │ :6379 │ │ :19530 │ │
│ └─────────┘ └─────────┘ └────┬─────┘ │
│ │ │
│ ┌────┴────┐ │
│ │ MinIO │ │
│ │ :9002 │ │
│ └─────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
---
## 二、数据库配置
### 1. MySQL (主数据库)
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **部署方式** | Docker Compose | 本地容器部署 |
| **容器名称** | mysql-server | - |
| **镜像** | docker.1ms.run/mysql:8.4.4 | MySQL 8.4.4 |
| **主机端口** | `33306` | 对外暴露端口 |
| **容器端口** | `3306` | MySQL默认端口 |
| **数据库名** | `chat_LLM` | 主业务数据库 |
| **root密码** | `1234567890` | 生产环境请修改 |
| **root主机** | `%` | 允许任意IP连接 |
| **数据卷** | `./mysql_bind` | 数据持久化目录 |
| **Compose文件** | `mysql/docker-compose.yml` | - |
**Java连接配置** (application-yj.yml):
```yaml
url: jdbc:mysql://127.0.0.1:3306/chat_LLM?useUnicode=true&characterEncoding=utf8&...
username: root
password: "1234567890"
```
**外部连接命令**:
```bash
mysql -h 127.0.0.1 -P 33306 -u root -p
# 密码: 1234567890
```
---
### 2. Redis (缓存)
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **部署方式** | 宿主机直接安装 | 非Docker部署 |
| **主机** | `127.0.0.1` | 本地连接 |
| **端口** | `6379` | Redis默认端口 |
| **密码** | 空 | 无密码 |
| **数据库** | `0` | 默认数据库 |
| **超时** | 6000ms | 连接超时 |
**Java连接配置**:
```yaml
redis:
host: 127.0.0.1
port: 6379
password: ""
database: 0
```
**测试连接**:
```bash
redis-cli -h 127.0.0.1 -p 6379
> ping
PONG
```
---
### 3. Milvus (向量数据库)
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **部署方式** | Docker Compose | 包含etcd、minio、standalone |
| **容器名称** | milvus-standalone | 主服务 |
| **镜像** | milvusdb/milvus:v2.6.4 | Milvus 2.6.4 |
| **端口** | `19530` | gRPC端口 |
| **监控端口** | `9091` | 健康检查端口 |
| **依赖服务** | etcd + minio | 元数据+对象存储 |
| **Compose文件** | `milvus/docker-compose.yml` | - |
**依赖组件**:
- **etcd**: 存储元数据 (端口 2379, 容器名: milvus-etcd)
- **minio**: 对象存储 (端口 9000/9002, 容器名: milvus-minio)
**Python连接配置**:
```python
from pymilvus import connections
connections.connect(host="127.0.0.1", port="19530")
```
---
### 4. MinIO (对象存储 - 独立部署)
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **部署方式** | Docker (Milvus自带) | 与Milvus共用 |
| **容器名称** | milvus-minio | - |
| **镜像** | minio/minio:RELEASE.2024-12-18 | - |
| **API端口** | `9003` (映射到9000) | S3 API端口 |
| **控制台端口** | `9002` (映射到9001) | Web管理界面 |
| **Access Key** | `minioadmin` | 默认账号 |
| **Secret Key** | `minioadmin` | 默认密码 |
**访问地址**:
- Web控制台: http://127.0.0.1:9002
- API地址: http://127.0.0.1:9003
---
## 三、应用服务配置
### 1. Java后端服务 (Spring Boot)
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **服务名称** | chat_web_backend | - |
| **端口** | `8099` | Tomcat端口 |
| **上下文路径** | `/chat_web_backend` | API前缀 |
| **完整URL** | http://localhost:8099/chat_web_backend | - |
| **活跃配置** | `yj` | spring.profiles.active=yj |
| **主配置** | application-yj.yml | 本地开发配置 |
| **Jar包路径** | `chat_web_backend/target/` | Maven打包输出 |
**启动命令**:
```bash
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web_backend
java -jar target/chat_web_backend-1.0.jar --spring.profiles.active=yj
```
**配置文件位置**:
```
chat_web_backend/src/main/resources/
├── application.yml # 公共配置
├── application-yj.yml # 本地开发配置(在用)
├── application-prod.yml # 生产环境配置
├── application-dev.yml # 开发环境配置
└── application-test.yml # 测试环境配置
```
---
### 2. Python RAG服务 (LangChain-Chat)
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **服务类型** | FastAPI + 多进程 | LangChain-Chatchat |
| **API端口** | `7861` | 主API服务 |
| **启动文件** | `startup.py` | - |
| **Python版本** | 3.11 | conda环境 |
| **Conda环境** | `langchain-chat` | - |
| **主目录** | `/opt/download/oss_files/gangyan-deploy/gangyan/langchain-chat` | - |
**关键配置**:
```yaml
# configs/model_config.py
EMBEDDING_MODEL: "bge-m3-api" # 嵌入模型
LLM_MODELS: ["deepseek-v3", ...] # LLM模型列表
EMBEDDING_DEVICE: "cpu" # 嵌入设备
LLM_DEVICE: "cuda" # LLM设备
```
**启动命令**:
```bash
cd /opt/download/oss_files/gangyan-deploy/gangyan/langchain-chat
/opt/software/miniconda3/envs/langchain-chat/bin/python startup.py -a
```
**向量模型API** (外部服务):
- 地址: http://10.102.24.75:3000/v1
- 模型: bge-m3 ( embeddings )
- 类型: OpenAI格式兼容API
---
### 3. Vue前端服务
| 配置项 | 值 | 说明 |
|--------|-----|------|
| **框架** | Vue 3 + Vite | - |
| **端口** | `3000` | 开发服务器 |
| **构建输出** | `dist/` | 生产包 |
| **源码路径** | `chat_web/` | - |
**开发启动**:
```bash
cd /opt/download/oss_files/gangyan-deploy/gangyan/chat_web
npm install
npm run dev
```
**生产构建**:
```bash
npm run build
# 输出到 dist/ 目录部署到Nginx
```
---
## 四、端口汇总表
| 服务 | 端口 | 类型 | 说明 |
|------|------|------|------|
| Vue前端 | 3000 | HTTP | 开发服务器 |
| Java后端 | 8099 | HTTP | Spring Boot服务 |
| Python RAG | 7861 | HTTP | FastAPI服务 |
| MySQL | 33306 | TCP | 数据库(映射) |
| Redis | 6379 | TCP | 缓存服务 |
| Milvus | 19530 | gRPC | 向量数据库 |
| Milvus监控 | 9091 | HTTP | 健康检查 |
| MinIO API | 9003 | HTTP | 对象存储API |
| MinIO控制台 | 9002 | HTTP | Web管理界面 |
---
## 五、关键配置文件路径
### 1. Docker Compose文件
```
/opt/download/oss_files/gangyan-deploy/gangyan/
├── mysql/docker-compose.yml # MySQL 8.4.4
├── milvus/docker-compose.yml # Milvus + etcd + minio
```
### 2. Java后端配置
```
/opt/download/oss_files/gangyan-deploy/gangyan/chat_web_backend/src/main/resources/
├── application.yml # 公共配置
├── application-yj.yml # 当前在用配置
└── ...
```
### 3. Python RAG配置
```
/opt/download/oss_files/gangyan-deploy/gangyan/langchain-chat/
├── configs/
│ ├── model_config.py # 模型配置
│ ├── server_config.py # 服务配置
│ └── kb_config.py # 知识库配置
└── startup.py # 启动脚本
```
### 4. Vue前端配置
```
/opt/download/oss_files/gangyan-deploy/gangyan/chat_web/
├── vite.config.js # Vite配置
├── package.json # 依赖配置
└── .env # 环境变量
```
---
## 六、常用操作命令
### 启动所有服务
```bash
cd /opt/download/oss_files/gangyan-deploy/gangyan
# 1. 启动基础服务
docker-compose -f mysql/docker-compose.yml up -d
docker-compose -f milvus/docker-compose.yml up -d
# 2. 启动Java后端
nohup java -jar chat_web_backend/target/chat_web_backend-1.0.jar \
--spring.profiles.active=yj > /tmp/java-server.log 2>&1 &
# 3. 启动Python RAG
cd langchain-chat
nohup /opt/software/miniconda3/envs/langchain-chat/bin/python \
startup.py -a > /tmp/langchain-chat.log 2>&1 &
# 4. 启动Vue前端开发
cd chat_web
npm run dev
```
### 检查服务状态
```bash
# 查看端口监听
netstat -tlnp | grep -E "8099|7861|33306|6379|19530"
# 查看Docker容器
docker ps
# 查看Java进程
ps aux | grep java
# 查看Python进程
ps aux | grep "startup.py"
```
### 重启服务
```bash
# 重启MySQL
docker restart mysql-server
# 重启Milvus
docker restart milvus-standalone milvus-etcd milvus-minio
# 重启Java
pkill -f "chat_web_backend"
nohup java -jar chat_web_backend/target/chat_web_backend-1.0.jar \
--spring.profiles.active=yj > /tmp/java-server.log 2>&1 &
# 重启Python RAG
pkill -f "startup.py"
cd langchain-chat
nohup /opt/software/miniconda3/envs/langchain-chat/bin/python \
startup.py -a > /tmp/langchain-chat.log 2>&1 &
```
---
## 七、注意事项
1. **MySQL端口**: 对外暴露为 `33306`但Java配置中使用的是 `3306`说明Java和MySQL在同一台机器上或使用了端口转发
2. **Redis无密码**: 当前配置未设置Redis密码生产环境建议配置密码
3. **Milvus依赖**: 启动Milvus前必须确保etcd和minio已启动
4. **向量模型**: bge-m3通过外部API调用 (10.102.24.75:3000),非本地部署
5. **数据备份**:
- MySQL数据在 `mysql/mysql_bind/` 目录
- Milvus数据在 `milvus/volumes/` 目录
---
## 八、联系信息
如有问题,请联系:
- 项目路径: `/opt/download/oss_files/gangyan-deploy/gangyan/`
- 部署文档: 见项目README.md