概览

根据分析,以下是 crates 目录中各库的使用情况和可补充建议:

现有 Crates 概览

核心库 (9个)

  ┌─────────────┬────────────────────────────────────────┬──────────────┐                                                                                                                                           
  │    Crate    │                  功能                  │ 当前使用情况 │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ common      │ 通用类型 (TenantId, UserId, AuditInfo) │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ errors      │ 统一错误处理, RFC 7807                 │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ config      │ 配置加载, Vault 集成                   │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ telemetry   │ 可观测性 (Tracing, Prometheus, Loki)   │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ ports       │ 抽象 trait 层 (Repository, Cache 等)   │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ domain-core │ 领域核心类型 (Entity, Money, Quantity) │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ cqrs-core   │ CQRS 命令/查询模式                     │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ event-core  │ 领域事件核心                           │ 所有服务     │                                                                                                                                           
  ├─────────────┼────────────────────────────────────────┼──────────────┤                                                                                                                                           
  │ auth-core   │ JWT/RBAC 认证授权                      │ 仅 2 个服务  │                                                                                                                                           
  └─────────────┴────────────────────────────────────────┴──────────────┘                                                                                                                                           

适配器库 (11个)

  ┌───────────────────────┬───────────────────┬──────────────────────┐                                                                                                                                              
  │        Adapter        │       功能        │     当前使用情况     │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-postgres      │ PostgreSQL 数据库 │ 所有服务             │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-redis         │ Redis 缓存        │ 所有服务             │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-kafka         │ Kafka 消息队列    │ 仅 3 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-email         │ 邮件发送          │ 仅 1 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-clickhouse    │ ClickHouse 分析   │ 仅 2 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-etcd          │ 服务发现          │ 仅 2 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-elasticsearch │ 全文搜索          │ 仅 1 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-minio         │ 对象存储          │ 仅 1 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-alertmanager  │ 告警管理          │ 仅 2 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-rabbitmq      │ RabbitMQ 消息队列 │ 仅 1 个服务          │                                                                                                                                              
  ├───────────────────────┼───────────────────┼──────────────────────┤                                                                                                                                              
  │ adapter-vault         │ Vault 密钥管理    │ 通过 config 间接使用 │                                                                                                                                              
  └───────────────────────┴───────────────────┴──────────────────────┘                                                                                                                                              


关键补充建议

第一优先级 - 必须添加

  1. auth-core → 所有 44 个服务
    - 目前仅 iam-identity, iam-tenant 使用
    - 所有服务都需要 JWT 验证和权限检查
  2. adapter-email → sys-notify (通知服务竟然没有邮件功能!)
  3. adapter-kafka → 事件驱动服务
    - fi-* (财务服务 - 审计事件)
    - mf-* (制造服务 - 生产事件)
    - sc-* (供应链服务)
    - sd-* (销售服务)

第二优先级 - 分析与审计

adapter-clickhouse 应添加到:

  • sd-an (销售分析 - 名字就是 analytics!)
  • sd-rr (报表记录)
  • sd-pe (绩效评估)
  • cs-cb (客户行为分析)
  • am-eh (设备历史)
  • 所有 fi-* 服务 (财务审计追踪)

第三优先级 - 增强功能

  ┌───────────────────────┬────────────────────────────────────────────────────────────────────────┐                                                                                                                
  │        Adapter        │                               建议添加到                               │                                                                                                                
  ├───────────────────────┼────────────────────────────────────────────────────────────────────────┤                                                                                                                
  │ adapter-email         │ hr-ex (费用审批), cs-wc (工单通知), pm-po (采购确认), sd-so (销售确认) │                                                                                                                
  ├───────────────────────┼────────────────────────────────────────────────────────────────────────┤                                                                                                                
  │ adapter-minio         │ hr-ex (费用单据), cs-wc (工单附件), mf-qi (质检照片), rd-pl (产品文档) │                                                                                                                
  ├───────────────────────┼────────────────────────────────────────────────────────────────────────┤                                                                                                                
  │ adapter-elasticsearch │ mdm-bp (业务伙伴搜索), mdm-material (物料搜索), cs-fd (反馈搜索)       │                                                                                                                
  ├───────────────────────┼────────────────────────────────────────────────────────────────────────┤                                                                                                                
  │ adapter-etcd          │ 所有服务 (微服务发现)                                                  │                                                                                                                
  ├───────────────────────┼────────────────────────────────────────────────────────────────────────┤                                                                                                                
  │ adapter-alertmanager  │ sys-core, sys-notify (运维告警)                                        │                                                                                                                
  └───────────────────────┴────────────────────────────────────────────────────────────────────────┘                                                                                                                

总结

最严重的问题是 auth-core 仅被 2/46 个服务使用,这意味着大部分服务缺少认证授权能力。建议按优先级逐步补充这些依赖。

核心功能

┌─────────────────────────────────────────────────────────────┐
│ auth-core │
├─────────────────────────────────────────────────────────────┤
│ Claims - JWT 声明 (user_id, tenant_id, │
│ permissions, roles) │
│ TokenService - JWT 生成与验证 │
│ require_permission! / require_role! - 权限检查宏 │
└─────────────────────────────────────────────────────────────┘

当前架构

                  ┌─────────────────┐                                                                                                                                                                           
                  │     Gateway     │                                                                                                                                                                           
                  │  (auth-core)    │  ← JWT 验证入口                                                                                                                                                           
                  └────────┬────────┘                                                                                                                                                                           
                           │ gRPC (已认证)                                                                                                                                                                      
       ┌───────────────────┼───────────────────┐                                                                                                                                                                
       ▼                   ▼                   ▼                                                                                                                                                                

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ iam-identity │ │ 其他服务 │ │ 其他服务 │
│ (auth-core) │ │ (无 auth-core)│ │ (无 auth-core)│
│ 生成 Token │ │ 信任 Gateway │ │ 信任 Gateway │
└─────────────────┘ └─────────────────┘ └─────────────────┘

关键发现

Gateway 的 middleware.rs:9 使用了 auth-core:
use auth_core::{Claims, TokenService};

这是一个 Gateway 集中认证 模式:

  • Gateway 负责所有 JWT 验证
  • 后端服务 通过 gRPC 接收已认证的请求,信任 Gateway

结论:其他服务是否需要 auth-core?
┌───────────────────┬────────────────────────────────────────────────┐
│ 场景 │ 是否需要 │
├───────────────────┼────────────────────────────────────────────────┤
│ JWT 验证 │ 不需要 - Gateway 已处理 │
├───────────────────┼────────────────────────────────────────────────┤
│ Token 生成 │ 不需要 - 仅 iam-identity 负责 │
├───────────────────┼────────────────────────────────────────────────┤
│ 权限检查 (细粒度) │ 可能需要 - 如果服务内部要检查 has_permission() │
└───────────────────┴────────────────────────────────────────────────┘
实际上,在当前架构下,大多数服务不需要 auth-core,因为:

  1. 认证在 Gateway 层完成
  2. Gateway 通过 gRPC metadata 传递 tenant-id 等信息
  3. 后端服务信任来自 Gateway 的请求

如果要增强安全性

如果希望后端服务也能做权限检查(零信任架构),可以:

  1. Gateway 将完整 Claims 通过 gRPC metadata 传递
  2. 后端服务使用 auth-core 的 Claims::has_permission() 做细粒度检查

但这不是必须的,取决于安全需求。

⏺ 根据业务场景分析,以下是真正需要补充的 adapter:

按优先级排序

第一优先级 - 明确需要

  ┌──────────────────┬────────────────────┬─────────────────────────────────────────────┐                                                                                                                           
  │       服务       │   需要的 Adapter   │                    理由                     │                                                                                                                           
  ├──────────────────┼────────────────────┼─────────────────────────────────────────────┤                                                                                                                           
  │ sd-an (销售分析) │ adapter-clickhouse │ 服务名就是 analytics,分析必须用 ClickHouse │                                                                                                                           
  ├──────────────────┼────────────────────┼─────────────────────────────────────────────┤                                                                                                                           
  │ sys-notify       │ adapter-email      │ 通知服务没有邮件发送能力是不完整的          │                                                                                                                           
  └──────────────────┴────────────────────┴─────────────────────────────────────────────┘     

第二优先级 - 业务驱动

  ┌────────────────────┬────────────────────┬────────────────────────────────┐                                                                                                                                      
  │        服务        │   需要的 Adapter   │              理由              │                                                                                                                                      
  ├────────────────────┼────────────────────┼────────────────────────────────┤                                                                                                                                      
  │ fi-* (6个财务服务) │ adapter-kafka      │ 财务事件需要可靠传递和审计追踪 │                                                                                                                                      
  ├────────────────────┼────────────────────┼────────────────────────────────┤                                                                                                                                      
  │ fi-gl (总账)       │ adapter-clickhouse │ 财务报表分析                   │                                                                                                                                      
  ├────────────────────┼────────────────────┼────────────────────────────────┤                                                                                                                                      
  │ hr-ex (费用报销)   │ adapter-minio      │ 发票/收据附件存储              │                                                                                                                                      
  ├────────────────────┼────────────────────┼────────────────────────────────┤                                                                                                                                      
  │ mf-qi (质量检验)   │ adapter-minio      │ 质检照片存储                   │                                                                                                                                      
  ├────────────────────┼────────────────────┼────────────────────────────────┤                                                                                                                                      
  │ cs-wc (工单)       │ adapter-minio      │ 工单附件                       │                                                                                                                                      
  └────────────────────┴────────────────────┴────────────────────────────────┘                                                                                                                                      

第三优先级 - 增强功能

  ┌─────────────────────┬───────────────────────┬─────────────────────┐                                                                                                                                             
  │        服务         │    需要的 Adapter     │        理由         │                                                                                                                                             
  ├─────────────────────┼───────────────────────┼─────────────────────┤                                                                                                                                             
  │ mdm-bp (业务伙伴)   │ adapter-elasticsearch │ 供应商/客户全文搜索 │                                                                                                                                             
  ├─────────────────────┼───────────────────────┼─────────────────────┤                                                                                                                                             
  │ mdm-material (物料) │ adapter-elasticsearch │ 物料主数据搜索      │                                                                                                                                             
  ├─────────────────────┼───────────────────────┼─────────────────────┤                                                                                                                                             
  │ cs-cb (客户行为)    │ adapter-clickhouse    │ 行为分析            │                                                                                                                                             
  └─────────────────────┴───────────────────────┴─────────────────────┘                                                                                                                                             

不需要补充的

  ┌────────────────────────────┬──────────────────────────────────────────────────────┐                                                                                                                             
  │          Adapter           │                         理由                         │                                                                                                                             
  ├────────────────────────────┼──────────────────────────────────────────────────────┤                                                                                                                             
  │ adapter-kafka (大多数服务) │ 当前架构用 Outbox + Postgres,只有核心服务需要 Kafka │                                                                                                                             
  ├────────────────────────────┼──────────────────────────────────────────────────────┤                                                                                                                             
  │ adapter-etcd               │ Gateway 负责服务发现,后端服务不需要                 │                                                                                                                             
  ├────────────────────────────┼──────────────────────────────────────────────────────┤                                                                                                                             
  │ adapter-alertmanager       │ 运维告警由基础设施层处理                             │                                                                                                                             
  ├────────────────────────────┼──────────────────────────────────────────────────────┤                                                                                                                             
  │ adapter-rabbitmq           │ 已有 Kafka,不需要两套消息队列                       │                                                                                                                             
  ├────────────────────────────┼──────────────────────────────────────────────────────┤                                                                                                                             
  │ auth-core                  │ Gateway 集中认证,后端服务不需要                     │                                                                                                                             
  └────────────────────────────┴──────────────────────────────────────────────────────┘                                                                                                                             
 

总结:真正需要补充的

  必须补充 (2个):                                                                                                                                                                                                   
  ├── sd-an        + adapter-clickhouse                                                                                                                                                                             
  └── sys-notify   + adapter-email                                                                                                                                                                                  
                                                                                                                                                                                                                    
  建议补充 (按需):                                                                                                                                                                                                  
  ├── fi-gl        + adapter-clickhouse  (财务分析)
  ├── hr-ex        + adapter-minio       (附件)
  ├── mf-qi        + adapter-minio       (质检照片) 
  ├── cs-wc        + adapter-minio       (工单附件)
  ├── mdm-bp       + adapter-elasticsearch (搜索) 
  └── mdm-material + adapter-elasticsearch (搜索)                                                                                                                                                                                                                    

核心原则:只在有明确业务需求时添加依赖,避免过度设计。

当前 Bootstrap 功能完整性

  ┌────────────────────────────┬───────────┐                                                                                                                                                                        
  │            功能            │   状态    │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ 配置加载(文件/Vault)     │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ 运行时初始化(日志、追踪) │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ PostgreSQL 连接池          │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ PostgreSQL 读写分离        │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ Redis 连接                 │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ Kafka Producer             │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ ClickHouse 连接池          │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ Etcd 客户端                │ ✅ (新增) │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ 健康检查 HTTP 端点         │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ Etcd 健康检查              │ ✅ (新增) │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ Metrics 导出               │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ 服务注册(所有启动函数)   │ ✅ (修复) │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ Graceful shutdown          │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ gRPC 拦截器                │ ✅        │                                                                                                                                                                        
  ├────────────────────────────┼───────────┤                                                                                                                                                                        
  │ 连接重试机制               │ ✅        │                                                                                                                                                                        
  └────────────────────────────┴───────────┘                                                                                                                                                                        

✻ Cooked for 3m 12s

❯ 下一步的计划

⏺ 让我先了解当前分支的工作进度,然后给出下一步计划建议。

⏺ Explore(探索 iam-tenant 分支进度)
⎿  Done (26 tool uses · 63.2k tokens · 1m 45s)

⏺ 下一步计划建议

根据当前 iam-tenant 分支的进度分析,服务实现已基本完成(95%)。以下是建议的下一步计划:


  阶段一:验证与测试(建议优先)                                                                                                                                                                                    
  ┌──────────────────────┬──────────────────────────────────────────┬────────┐                                                                                                                                      
  │         任务         │                   说明                   │ 优先级 │                                                                                                                                      
  ├──────────────────────┼──────────────────────────────────────────┼────────┤                                                                                                                                      
  │ 运行数据库迁移       │ ./scripts/migrate-database.sh iam-tenant │ 高     │                                                                                                                                      
  ├──────────────────────┼──────────────────────────────────────────┼────────┤                                                                                                                                      
  │ 初始化超级管理员     │ ./scripts/init-super-admin.sh            │ 高     │                                                                                                                                      
  ├──────────────────────┼──────────────────────────────────────────┼────────┤                                                                                                                                      
  │ 启动 iam-tenant 服务 │ 验证服务能正常启动                       │ 高     │                                                                                                                                      
  ├──────────────────────┼──────────────────────────────────────────┼────────┤                                                                                                                                      
  │ 启动 gateway         │ 验证 REST API 能正常访问                 │ 高     │                                                                                                                                      
  ├──────────────────────┼──────────────────────────────────────────┼────────┤                                                                                                                                      
  │ 端到端测试           │ 测试租户创建、查询等核心流程             │ 中     │                                                                                                                                      
  └──────────────────────┴──────────────────────────────────────────┴────────┘                                                                                                                                      
  ---                                                                                                                                                                                                               
  阶段二:代码质量(可选)                                                                                                                                                                                          
  ┌────────────────────────────────────┬────────────────────────────────┬────────┐                                                                                                                                  
  │                任务                │              说明              │ 优先级 │                                                                                                                                  
  ├────────────────────────────────────┼────────────────────────────────┼────────┤                                                                                                                                  
  │ 清理编译警告                       │ 25 个未使用变量警告            │ 低     │                                                                                                                                  
  ├────────────────────────────────────┼────────────────────────────────┼────────┤                                                                                                                                  
  │ 补充 DATABASE_MIGRATION_PATTERN.md │ 文档为空                       │ 低     │                                                                                                                                  
  ├────────────────────────────────────┼────────────────────────────────┼────────┤                                                                                                                                  
  │ 添加集成测试                       │ Repository、Handler、gRPC 测试 │ 中     │                                                                                                                                  
  └────────────────────────────────────┴────────────────────────────────┴────────┘                                                                                                                                  
  ---                                                                                                                                                                                                               
  阶段三:其他服务集成                                                                                                                                                                                              
  ┌─────────────────────────────────┬─────────────────────┬────────┐                                                                                                                                                
  │              任务               │        说明         │ 优先级 │                                                                                                                                                
  ├─────────────────────────────────┼─────────────────────┼────────┤                                                                                                                                                
  │ iam-identity 与 iam-tenant 集成 │ 用户需要关联租户    │ 高     │                                                                                                                                                
  ├─────────────────────────────────┼─────────────────────┼────────┤                                                                                                                                                
  │ iam-access 与 iam-tenant 集成   │ 权限需要租户隔离    │ 高     │                                                                                                                                                
  ├─────────────────────────────────┼─────────────────────┼────────┤                                                                                                                                                
  │ 其他业务服务租户化改造          │ 添加 tenant_id 字段 │ 中     │                                                                                                                                                
  └─────────────────────────────────┴─────────────────────┴────────┘                                                                                                                                                
  ---                                                                                                                                                                                                               
  阶段四:生产准备                                                                                                                                                                                                  
  ┌────────────────┬────────────────────────────┬────────┐                                                                                                                                                          
  │      任务      │            说明            │ 优先级 │                                                                                                                                                          
  ├────────────────┼────────────────────────────┼────────┤                                                                                                                                                          
  │ Kafka 事件发布 │ 替换 LoggingEventPublisher │ 中     │                                                                                                                                                          
  ├────────────────┼────────────────────────────┼────────┤                                                                                                                                                          
  │ Redis 缓存验证 │ 确保缓存层正常工作         │ 中     │                                                                                                                                                          
  ├────────────────┼────────────────────────────┼────────┤                                                                                                                                                          
  │ 性能测试       │ 压测租户查询、配额检查     │ 低     │                                                                                                                                                          
  ├────────────────┼────────────────────────────┼────────┤                                                                                                                                                          
  │ 部署文档       │ K8s/Docker 部署指南        │ 中     │                                                                                                                                                          
  └────────────────┴────────────────────────────┴────────┘                                                                                                                                                          

建议立即执行

1. 运行迁移和初始化

./scripts/migrate-database.sh iam-tenant && ./scripts/init-super-admin.sh

2. 启动 iam-tenant 服务

cd services/iam-tenant && cargo run

3. 另一个终端启动 gateway

cd gateway && cargo run

posted @ 2026-02-05 19:25  eqy  阅读(1)  评论(0)    收藏  举报