井云后端服务
井云后端是基于 Go 语言和 Kratos 框架构建的微服务架构系统,采用现代化的技术栈和设计模式,提供高性能、高可用的企业级服务。
🏗️ 架构概览
技术栈
- 语言: Go 1.25.4
- 框架: Kratos v2 (微服务框架)
- ORM: Ent v0.14.5
- 协议: gRPC/HTTP (Protocol Buffers)
- 数据库: PostgreSQL 17.5
- 缓存: Redis
- 消息队列: RabbitMQ 3.0
- 服务注册: Consul
- 依赖注入: Wire v0.7.0
- 容器化: Docker + Docker Compose
微服务架构
┌─────────────────────────────────────────┐
│ Gateway (8000/9000) │
│ 统一网关、路由转发、认证鉴权 │
└─────────────────┬───────────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│ Auth │ │ User │ │Tenant │ │Agent │
│ 9001 │ │ 9002 │ │ 9003 │ │ 9004 │
└───┬───┘ └───┬───┘ └───┬───┘ └───┬───┘
│ │ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│Payment│ │Integration│ │Cron │
│ 9006 │ │ 9007 │ │ 9008 │
└───────┘ └───────────┘ └───────┘
📋 核心服务
Gateway 网关服务 (8000/9000)
- 功能: 统一网关、路由转发、认证鉴权
- 技术: Kratos HTTP/gRPC 双协议支持
- 特性: 限流、熔断、负载均衡
Auth 认证服务 (9001)
- 功能: 用户认证、JWT Token管理、微信登录
- 特性: 多种登录方式、安全认证
User 用户服务 (9002)
- 功能: 用户管理、分销系统、点数管理
- 特性: 用户体系、分销佣金、点数消费
Tenant 租户服务 (9003)
- 功能: 多租户管理、版本管理、权限管理
- 特性: 租户隔离、版本控制、权限体系
Agent 智能体服务 (9004)
- 功能: AI智能体管理、分类管理、平台资产同步
- 特性: 多类型智能体、平台集成
Payment 支付服务 (9006)
- 功能: 订单管理、微信支付、支付回调
- 特性: 支付流程、订单处理、回调验证
Integration 集成服务 (9007)
- 功能: 第三方服务集成、文件上传、短信服务
- 特性: 多平台集成、文件存储、消息通知
Cron 定时任务服务 (9008)
- 功能: 定时任务调度、点数过期处理
- 特性: 任务调度、自动化处理
🗄️ 数据架构
数据库设计
- 主数据库: PostgreSQL 17.5
- 缓存层: Redis 集群
- 消息队列: RabbitMQ 3.0
- 搜索引擎: Elasticsearch (可选)
数据模型
- 用户域: 用户、角色、权限
- 租户域: 租户、版本、权限配置
- 业务域: 智能体、订单、点数、分销
- 集成域: 第三方平台配置、文件存储
🔧 开发环境
环境要求
- Go 1.25.4+
- Docker & Docker Compose
- PostgreSQL 17.5
- Redis
- RabbitMQ
- Consul
快速启动
# 启动基础设施
docker-compose -f deployments/docker-compose.local.yml up -d
# 构建并运行服务
cd services/gateway
make all
make run
代码生成
# 生成 API 代码
make api
# 生成配置代码
make config
# 生成 Wire 依赖注入代码
make wire
# 生成 Ent ORM 代码
make ent
# 生成所有代码
make all
📏 开发规范
代码规范
- 遵循 Go 语言标准编码规范
- 使用 golangci-lint 进行代码质量检查
- 测试覆盖率要求 ≥ 90%
API 设计规范
- 使用 Protocol Buffers 定义 API
- 数组参数使用
repeated字段 - RESTful 风格的 HTTP 路径
测试规范
- Gateway 服务使用函数字段 mock
- 其他服务使用 sqlmock + Ent ORM
- 所有字段必须验证,避免字段遗漏
🚀 部署运维
本地部署
# 启动完整环境
docker-compose -f deployments/docker-compose.local.yml up -d
# 查看服务状态
docker-compose -f deployments/docker-compose.local.yml ps
生产部署
- 容器化: Docker + Kubernetes
- 服务注册: Consul
- 配置中心: Consul KV
- 监控: Prometheus + Grafana
- 日志: ELK Stack
🔗 服务间通信
同步通信
- 协议: gRPC
- 服务发现: Consul
- 负载均衡: Consul + 客户端负载均衡
异步通信
- 消息队列: RabbitMQ
- 事件驱动: 业务事件发布订阅
- 消息模式: Direct/Topic/Fanout