跳到主要内容

井云后端服务

井云后端是基于 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

📚 相关文档