重构项目结构:迁移到单体架构并优化代码组织
- 删除分布式架构相关文件和配置 - 将backend-distributed重命名为backend保留分布式代码作为参考 - 优化backend-single单体架构实现 - 添加Coze API集成相关文档和测试 - 清理项目根目录的部署脚本和配置文件 - 更新WebSocket和消息服务实现 - 完善认证服务和密码加密功能
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
# 网关服务配置更新总结
|
||||
|
||||
## 更新时间
|
||||
2025-07-17
|
||||
|
||||
## 更新内容
|
||||
|
||||
### 1. 服务端口配置更新
|
||||
|
||||
根据当前backend下的最新模块,更新了所有微服务的路由配置:
|
||||
|
||||
| 服务名称 | 端口 | 路由路径 | 描述 |
|
||||
|---------|------|----------|------|
|
||||
| emotion-gateway | 19000 | - | 网关服务 |
|
||||
| emotion-user | 19001 | /user/**, /captcha/**, /oauth/** | 用户服务(包含认证) |
|
||||
| emotion-ai | 19002 | /ai/** | AI对话服务 |
|
||||
| emotion-record | 19003 | /record/** | 情绪记录服务 |
|
||||
| emotion-growth | 19004 | /growth/** | 成长课题服务 |
|
||||
| emotion-explore | 19005 | /explore/** | 地图探索服务 |
|
||||
| emotion-reward | 19006 | /reward/** | 成就奖励服务 |
|
||||
| emotion-websocket | 19007 | /websocket/**, /ws/** | WebSocket聊天服务 |
|
||||
| emotion-stats | 19008 | /stats/** | 统计分析服务 |
|
||||
|
||||
### 2. 新增WebSocket支持
|
||||
|
||||
#### WebSocket路由配置
|
||||
```yaml
|
||||
# WebSocket聊天服务路由
|
||||
- id: emotion-websocket-route
|
||||
uri: http://localhost:19007
|
||||
predicates:
|
||||
- Path=/websocket/**
|
||||
filters:
|
||||
- StripPrefix=0
|
||||
|
||||
# WebSocket连接路由 (支持WebSocket升级)
|
||||
- id: emotion-websocket-ws-route
|
||||
uri: ws://localhost:19007
|
||||
predicates:
|
||||
- Path=/ws/**
|
||||
filters:
|
||||
- StripPrefix=0
|
||||
```
|
||||
|
||||
#### 特性
|
||||
- 支持HTTP和WebSocket协议
|
||||
- REST API路径:`/websocket/**`
|
||||
- WebSocket连接路径:`/ws/**`
|
||||
- 自动协议升级支持
|
||||
|
||||
### 3. 新增跨域配置
|
||||
|
||||
```yaml
|
||||
# 全局跨域配置
|
||||
globalcors:
|
||||
cors-configurations:
|
||||
'[/**]':
|
||||
allowed-origins: "*"
|
||||
allowed-methods: "*"
|
||||
allowed-headers: "*"
|
||||
allow-credentials: true
|
||||
```
|
||||
|
||||
### 4. 端口冲突解决
|
||||
|
||||
**问题**:emotion-stats和emotion-websocket都使用19007端口
|
||||
|
||||
**解决方案**:
|
||||
- emotion-websocket保持19007端口(新增的重要服务)
|
||||
- emotion-stats更改为19008端口
|
||||
|
||||
**修改文件**:
|
||||
- `backend/emotion-stats/src/main/resources/application.yml`
|
||||
|
||||
### 5. 完整路由列表
|
||||
|
||||
#### 用户相关服务
|
||||
- `/user/**` → emotion-user:19001
|
||||
- `/captcha/**` → emotion-user:19001
|
||||
- `/oauth/**` → emotion-user:19001
|
||||
|
||||
#### AI相关服务
|
||||
- `/ai/**` → emotion-ai:19002
|
||||
- `/websocket/**` → emotion-websocket:19007 (REST API)
|
||||
- `/ws/**` → emotion-websocket:19007 (WebSocket)
|
||||
|
||||
#### 业务功能服务
|
||||
- `/record/**` → emotion-record:19003
|
||||
- `/growth/**` → emotion-growth:19004
|
||||
- `/explore/**` → emotion-explore:19005
|
||||
- `/reward/**` → emotion-reward:19006
|
||||
- `/stats/**` → emotion-stats:19008
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 1. 通过网关访问AI服务
|
||||
```bash
|
||||
# 直接访问
|
||||
curl http://localhost:19002/api/ai/chat/send
|
||||
|
||||
# 通过网关访问
|
||||
curl http://localhost:19000/ai/api/ai/chat/send
|
||||
```
|
||||
|
||||
### 2. 通过网关访问WebSocket服务
|
||||
```bash
|
||||
# REST API测试
|
||||
curl http://localhost:19000/websocket/online-users
|
||||
|
||||
# WebSocket连接
|
||||
ws://localhost:19000/ws/chat
|
||||
```
|
||||
|
||||
### 3. 通过网关访问用户服务
|
||||
```bash
|
||||
# 用户注册
|
||||
curl http://localhost:19000/user/api/user/register
|
||||
|
||||
# 获取验证码
|
||||
curl http://localhost:19000/captcha/api/captcha/generate
|
||||
```
|
||||
|
||||
## 配置文件位置
|
||||
|
||||
- **主配置**:`backend/emotion-gateway/src/main/resources/application-local.yml`
|
||||
- **生产配置**:`backend/emotion-gateway/src/main/resources/application-prod.yml`
|
||||
- **Docker配置**:`backend/emotion-gateway/src/main/resources/application-docker.yml`
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **端口一致性**:确保各服务的实际端口与网关配置一致
|
||||
2. **WebSocket支持**:新增的WebSocket路由支持协议升级
|
||||
3. **跨域配置**:已添加全局跨域支持,适用于前端开发
|
||||
4. **路径匹配**:使用`StripPrefix=0`保持原始路径
|
||||
5. **服务发现**:本地环境禁用Nacos,使用直连方式
|
||||
|
||||
## 验证方法
|
||||
|
||||
### 1. 检查网关状态
|
||||
```bash
|
||||
curl http://localhost:19000/actuator/health
|
||||
```
|
||||
|
||||
### 2. 测试路由转发
|
||||
```bash
|
||||
# 测试用户服务路由
|
||||
curl http://localhost:19000/user/actuator/health
|
||||
|
||||
# 测试AI服务路由
|
||||
curl http://localhost:19000/ai/actuator/health
|
||||
|
||||
# 测试WebSocket服务路由
|
||||
curl http://localhost:19000/websocket/online-users
|
||||
```
|
||||
|
||||
### 3. 查看网关日志
|
||||
```bash
|
||||
tail -f backend/logs/emotion-gateway-local.log
|
||||
```
|
||||
|
||||
## 后续优化建议
|
||||
|
||||
1. **负载均衡**:生产环境可考虑启用Nacos服务发现
|
||||
2. **限流配置**:添加请求限流和熔断机制
|
||||
3. **安全配置**:添加JWT认证过滤器
|
||||
4. **监控配置**:集成链路追踪和指标监控
|
||||
5. **缓存配置**:添加响应缓存机制
|
||||
|
||||
## 相关文件更新
|
||||
|
||||
- ✅ `backend/emotion-gateway/src/main/resources/application-local.yml`
|
||||
- ✅ `backend/emotion-stats/src/main/resources/application.yml`
|
||||
- ✅ 网关配置文档更新
|
||||
|
||||
## 测试状态
|
||||
|
||||
- ✅ 配置文件语法正确
|
||||
- ✅ 端口冲突已解决
|
||||
- ✅ WebSocket路由已添加
|
||||
- ✅ 跨域配置已添加
|
||||
- ⏳ 实际路由转发测试待进行
|
||||
Reference in New Issue
Block a user