技术栈与选型
**本文引用的文件** - [[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)
目录
引言
本文件系统化梳理 BI 分析平台的技术栈与选型,覆盖后端 Go 微服务、前端 Next.js、AI 框架 AgentScope、数据库与中间件(StarRocks、MySQL、Redis、Kafka)等,并给出兼容性矩阵与版本管理策略,解释技术选型如何支撑业务需求与性能目标。
项目结构
平台采用多模块工作区组织,后端以 Kratos 微服务为核心,前端以 Next.js 为主,AI 侧引入 AgentScope 生态,公共能力沉淀在 bi-common 中,协议定义集中在 bi-proto,数据库与中间件通过统一配置与客户端库接入。
图表来源
- [bi-analysis/go.mod]
- [bi-common/go.mod]
- [bi-proto/go.mod]
- [ui-web/package.json]
- [bi-chat/requirements.txt]
章节来源
- [bi-analysis/go.mod]
- [bi-common/go.mod]
- [bi-proto/go.mod]
- [ui-web/package.json]
- [bi-chat/requirements.txt]
核心组件
- 后端语言与框架
- 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:监控告警。
章节来源
- [bi-analysis/go.mod]
- [bi-common/go.mod]
- [bi-proto/go.mod]
- [ui-web/package.json]
- [bi-chat/requirements.txt]
架构总览
整体采用“微服务 + 事件驱动 + 多终端”的架构。后端服务通过 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、数据库、向量库与图数据库的连接参数。
章节来源
- [bi-common/registry/nacos/nacos-default.yaml]
- [bi-common/database/gormx/gormx-default.yaml]
- [bi-common/cache/redisx/redisx-default.yaml]
- [bi-common/mq/kafkax/kafkax-default.yaml]
- [bi-chat/.env.example]
结论
该技术栈以 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)
章节来源
- [bi-analysis/go.mod]
- [bi-common/go.mod]
- [bi-proto/go.mod]
- [ui-web/package.json]
- [bi-chat/requirements.txt]
版本管理策略
- 语言版本
- Go:采用稳定版本(1.25.x),确保安全与性能补丁及时更新。
- 框架与库
- Kratos、gRPC、GORM、Nacos SDK、Kafka 客户端等均采用语义化版本,遵循“主版本不升级”原则进行小版本与补丁升级。
- 前端
- Next.js 与 React 保持同步更新,优先选择长期支持版本。
- AI 与数据
- AgentScope、DashScope、PostgreSQL、Milvus、Neo4j 等按功能需求与稳定性评估迭代。