Skip to content

技术栈与选型

**本文引用的文件** - [[bi-analysis/go.mod]](../file/bi-analysis/go.mod) - [[bi-common/go.mod]](../file/bi-common/go.mod) - [[bi-proto/go.mod]](../file/bi-proto/go.mod) - [[ui-web/package.json]](../file/ui-web/package.json) - [[bi-chat/requirements.txt]](../file/bi-chat/requirements.txt) - [[bi-analysis/configs/application-prod.yaml]](../file/bi-analysis/configs/application-prod.yaml) - [[bi-common/registry/nacos/nacos-default.yaml]](../file/bi-common/registry/nacos/nacos-default.yaml) - [[bi-common/mq/kafkax/kafkax-default.yaml]](../file/bi-common/mq/kafkax/kafkax-default.yaml) - [[bi-common/cache/redisx/redisx-default.yaml]](../file/bi-common/cache/redisx/redisx-default.yaml) - [[bi-common/database/gormx/gormx-default.yaml]](../file/bi-common/database/gormx/gormx-default.yaml) - [[bi-chat/.env.example]](../file/bi-chat/.env.example)

目录

  1. 引言
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

引言

本文件系统化梳理 BI 分析平台的技术栈与选型,覆盖后端 Go 微服务、前端 Next.js、AI 框架 AgentScope、数据库与中间件(StarRocks、MySQL、Redis、Kafka)等,并给出兼容性矩阵与版本管理策略,解释技术选型如何支撑业务需求与性能目标。

项目结构

平台采用多模块工作区组织,后端以 Kratos 微服务为核心,前端以 Next.js 为主,AI 侧引入 AgentScope 生态,公共能力沉淀在 bi-common 中,协议定义集中在 bi-proto,数据库与中间件通过统一配置与客户端库接入。

图表来源

章节来源

核心组件

  • 后端语言与框架
    • Go 1.25.5:稳定生态、并发模型优秀,适配 Kratos 微服务与高吞吐场景。
    • Kratos v2:提供服务治理、配置发现、可观测性等微服务基础能力。
    • gRPC/网关:统一接口契约,跨语言互通。
  • 前端框架
    • Next.js 16.1.6 + React 19:SSR/ISR、类型安全、生态成熟,满足 BI 可视化与交互需求。
  • AI 与智能体
    • AgentScope 1.0.13:多模态智能体编排,结合 DashScope/OpenAI 等大模型能力。
  • 数据与中间件
    • StarRocks/MySQL:OLAP/OLTP 分层存储,兼顾实时与历史分析。
    • Kafka:事件驱动与数据管道。
    • Redis:缓存、限流、会话状态。
  • 通用能力
    • Nacos:配置与注册中心,支持多环境与动态配置。
    • OpenTelemetry:链路追踪与指标采集。
    • Prometheus/Grafana:监控告警。

章节来源

架构总览

整体采用“微服务 + 事件驱动 + 多终端”的架构。后端服务通过 Kratos 提供 gRPC/HTTP 接口,前端 Next.js 通过网关访问;AI 侧独立部署,对接数据库与缓存;公共能力由 bi-common 统一抽象,配置与注册中心由 Nacos 提供。

图表来源

详细组件分析

后端微服务(Kratos + Go)

  • 语言与版本
    • Go 1.25.5:稳定 LTS 版本,生态成熟,适合长线维护。
  • 框架与依赖
    • Kratos v2:服务注册、配置、日志、链路追踪、健康检查等。
    • gRPC + grpc-gateway:统一契约,便于前后端与 AI 侧对接。
    • gorm + mysql 驱动:ORM 与 MySQL 访问。
  • 代码组织
    • 通过 Wire 进行依赖注入,模块化清晰,利于测试与演进。

图表来源

章节来源

前端(Next.js)

  • 技术栈
    • Next.js 16.1.6、React 19、TypeScript 5、TailwindCSS。
    • 图表库 ECharts、表格 Grid、状态管理 Zustand。
  • 适用性
    • 支持 SSR/ISR,利于 SEO 与首屏性能;可视化组件丰富,满足 BI 场景。

章节来源

AI 与智能体(AgentScope + Python)

  • 技术栈
    • AgentScope 1.0.13、FastAPI、Uvicorn、Pydantic、DashScope、OpenAI、PostgreSQL、Milvus、Neo4j、Redis。
  • 适用性
    • 支持多模态对话、检索增强生成(RAG)、知识图谱与向量检索,适配 BI 场景的问答与洞察。

章节来源

数据库与中间件

StarRocks/MySQL

  • 选型理由
    • StarRocks:高性能 OLAP,适合海量明细与复杂分析查询。
    • MySQL:事务型业务、元数据与配置存储。
  • 连接与配置
    • gormx 默认配置支持连接池、慢查询日志、TLS 等。

章节来源

Redis

  • 选型理由
    • 缓存热点数据、会话状态、限流与分布式锁。
  • 配置要点
    • 单机/哨兵/集群模式可选,连接池参数可调,超时与 TLS 可配置。

章节来源

Kafka

  • 选型理由
    • 事件驱动与数据管道,解耦生产者与消费者,支持水平扩展。
  • 配置要点
    • 批量大小、压缩算法、分区重平衡、分区变化监控等。

章节来源

Nacos

  • 选型理由
    • 配置与注册中心,支持多环境、灰度与动态配置热更新。
  • 配置要点
    • 服务端、客户端、鉴权、日志与缓存目录等。

章节来源

服务间调用序列(示例:前端 -> 网关 -> 服务)

图表来源

依赖关系分析

  • 模块依赖
    • bi-analysis 依赖 bi-common 与 bi-proto,形成“服务-协议-通用库”的分层。
    • bi-common 内聚了数据库、消息队列、缓存、注册中心、可观测性等通用能力。
  • 第三方依赖
    • Kratos 生态、gRPC 生态、GORM、Prometheus、OpenTelemetry、Nacos SDK、Kafka Go 客户端等。

图表来源

章节来源

性能考量

  • 并发与资源
    • Go 并发模型与 automaxprocs:合理利用 CPU,避免过度调度。
  • 数据库
    • 连接池参数、慢查询阈值、TLS 开关需按压测结果调优。
  • 缓存
    • 合理设置过期策略与淘汰机制,避免雪崩与击穿。
  • 消息队列
    • 批处理大小与压缩算法影响吞吐与延迟,分区与重平衡策略决定扩展性。
  • 前端
    • ISR/SSR、静态资源优化、图表懒加载与虚拟滚动提升首屏与滚动性能。

故障排查指南

  • 配置中心
    • 检查 Nacos 地址、命名空间、分组与 DataID 是否正确,确认鉴权配置。
  • 数据库
    • 关注慢查询日志、连接池耗尽、TLS 证书与网络连通性。
  • 缓存
    • 观察命中率、过期策略、连接池上限与超时。
  • 消息队列
    • 关注分区变化监控、重平衡频率、消费者组状态与堆积情况。
  • AI 服务
    • 对照 .env 示例核对 LLM、数据库、向量库与图数据库的连接参数。

章节来源

结论

该技术栈以 Kratos 为内核、Next.js 为门户、AgentScope 为智能中枢,配合 Nacos、Kafka、Redis、StarRocks/MySQL 形成高可用、可扩展、可观测的 BI 分析平台。通过模块化与协议化,降低耦合、提升协作效率;通过中间件与数据库分层,满足实时与历史分析的性能与成本诉求。

附录

技术栈兼容性矩阵(示意)

  • 语言与框架
    • Go 1.25.5 + Kratos v2 + gRPC + gormx
    • TypeScript 5 + Next.js 16.1.6 + React 19
    • Python 3.x + AgentScope 1.0.13 + FastAPI + Pydantic
  • 数据库与中间件
    • StarRocks/MySQL(ORM:GORM),Kafka(kafka-go),Redis(go-redis),Nacos(nacos-sdk-go)

章节来源

版本管理策略

  • 语言版本
    • Go:采用稳定版本(1.25.x),确保安全与性能补丁及时更新。
  • 框架与库
    • Kratos、gRPC、GORM、Nacos SDK、Kafka 客户端等均采用语义化版本,遵循“主版本不升级”原则进行小版本与补丁升级。
  • 前端
    • Next.js 与 React 保持同步更新,优先选择长期支持版本。
  • AI 与数据
    • AgentScope、DashScope、PostgreSQL、Milvus、Neo4j 等按功能需求与稳定性评估迭代。