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

363 lines
11 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.

# 甘言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