- Remove Address field from PartyEndpoint (parties connect to router themselves) - Update K8s Discovery to only manage PartyID and Role labels - Add Party registration and SessionEvent protobuf definitions - Implement PartyRegistry and SessionEventBroadcaster domain logic - Add RegisterParty and SubscribeSessionEvents gRPC handlers - Prepare infrastructure for party-driven MPC coordination This is the first phase of migrating from coordinator-driven to party-driven architecture following international MPC system design patterns. |
||
|---|---|---|
| .. | ||
| README.md | ||
| health-check.sh | ||
| quick-test.sh | ||
| rebuild-kafka.sh | ||
| start-all.sh | ||
| stop-service.sh | ||
README.md
测试和健康检查脚本
使用流程
1️⃣ 启动 Redis(如果未启动)
# 启动 Redis
redis-server --daemonize yes
# 或者使用后台启动
redis-server &
2️⃣ 启动 Identity Service
# 在项目根目录
npm run start:dev
3️⃣ 运行健康检查
# 进入 scripts 目录
cd scripts
# 运行健康检查
./health-check.sh
期望输出:
🏥 开始健康检查...
=== 数据库服务 ===
Checking PostgreSQL ... ✓ OK
=== 缓存服务 ===
Checking Redis ... ✓ OK
=== 消息队列服务 ===
Checking Kafka ... ✓ OK
=== 应用服务 ===
Checking Identity Service ... ✓ OK
=== API 文档 ===
Checking Swagger UI ... ✓ OK
======================================
健康检查完成!
正常: 5
异常: 0
======================================
✓ 所有服务正常!
现在可以运行测试:
./scripts/quick-test.sh
4️⃣ 运行快速功能测试
./quick-test.sh
这个脚本会自动测试所有核心功能:
- ✅ 账户创建
- ✅ 个人资料管理
- ✅ 设备管理
- ✅ Token 刷新
- ✅ 助记词恢复
- ✅ 推荐码查询
- ✅ KYC 提交
- ✅ 错误场景处理
如果健康检查失败
当 health-check.sh 显示服务异常时,它会给出修复建议:
✗ 存在异常的服务!
修复建议:
• Redis: redis-server --daemonize yes
• Identity Service: npm run start:dev
或者运行一键启动脚本:
./scripts/start-all.sh
手动修复步骤
Redis 未启动
redis-server --daemonize yes
Identity Service 未启动
# 在项目根目录
npm run start:dev
PostgreSQL 未启动
# Ubuntu/Debian
sudo systemctl start postgresql
# macOS
brew services start postgresql
# Windows
# 使用 PostgreSQL 服务管理器
一键启动(推荐)
如果想一次性启动所有服务:
./scripts/start-all.sh
这个脚本会:
- ✅ 启动 Redis(如果未运行)
- ✅ 检查 PostgreSQL 状态
- ✅ 检查 Kafka 状态
- ✅ 启动 Identity Service
- ✅ 等待服务就绪
- ✅ 自动运行健康检查
脚本说明
health-check.sh
- 作用: 检查所有依赖服务是否正常运行
- 使用场景: 部署前、调试时
- 前置条件: 所有服务需要已启动
quick-test.sh
- 作用: 快速测试所有核心 API 功能
- 使用场景: 验证功能完整性、回归测试
- 前置条件:
health-check.sh通过
start-all.sh
- 作用: 一键启动所有服务
- 使用场景: 初次启动、快速启动环境
- 前置条件: 依赖已安装(PostgreSQL、Redis、Kafka)
常见问题
Q: 为什么 curl: command not found?
A: 安装 curl
# Ubuntu/Debian
sudo apt-get install curl
# macOS (通常已安装)
brew install curl
Q: 为什么 jq: command not found?
A: quick-test.sh 需要 jq 来解析 JSON
# Ubuntu/Debian
sudo apt-get install jq
# macOS
brew install jq
Q: Redis 启动失败?
A: 检查是否已经在运行
# 查看 Redis 进程
ps aux | grep redis
# 如果已运行,先停止
redis-cli shutdown
# 然后重新启动
redis-server --daemonize yes
Q: Identity Service 启动失败?
A: 检查日志
# 查看启动日志
npm run start:dev
# 常见问题:
# 1. 端口 3000 已被占用 → 修改 PORT 环境变量
# 2. 数据库连接失败 → 检查 .env 配置
# 3. Redis 连接失败 → 确保 Redis 已启动
完整测试流程
# 1. 进入项目目录
cd ~/work/rwadurian/backend/services/identity-service
# 2. 安装依赖(首次)
npm install
# 3. 启动所有服务
./scripts/start-all.sh
# 4. 运行健康检查
./scripts/health-check.sh
# 5. 运行快速测试
./scripts/quick-test.sh
# 6. 运行完整测试
npm test
npm run test:e2e
下一步
所有脚本通过后,可以进行: