下面按 前端 → 后端 → 数据库与存储 → 中间件与工具 → 部署与运维 五个维度,给出完整技术栈。
一、前端技术栈(完整)
| 分类 | 技术选项(主流) |
| 语言 |
TypeScript, JavaScript |
| 框架 |
React, Vue, Angular |
| 构建工具 |
Vite, Webpack, Next.js, Nuxt |
| 包管理器 |
pnpm, npm, yarn |
| 路由 |
React Router, Vue Router, Angular Router |
| 状态管理 |
Redux (RTK), Pinia, Vuex, Zustand, MobX |
| UI组件库 |
Ant Design, Element Plus, Material UI, Vuetify, Chakra UI |
| HTTP客户端 |
Axios, fetch |
| CSS方案 |
Tailwind CSS, SCSS, CSS Modules, styled-components |
| 表单管理 |
React Hook Form, Formik, VeeValidate |
| 图表 |
ECharts, AntV, Highcharts |
| 国际化 |
i18next, react-i18next, vue-i18n |
| 测试 |
Vitest, Jest, Testing Library, Cypress, Playwright |
| 代码规范 |
ESLint, Prettier, Husky, lint-staged |
| 包分析 |
rollup-plugin-visualizer, webpack-bundle-analyzer |
二、后端技术栈(完整)
| 分类 | 技术选项(主流) |
| 语言 |
Go, Java, Python, Node.js (TypeScript), C#, Rust |
| Web框架 |
Gin, Echo, Spring Boot, FastAPI, Django, Express, NestJS, ASP.NET Core |
| API风格 |
REST, GraphQL, gRPC, WebSocket |
| 认证授权 |
JWT, OAuth2, Session, Casbin, Spring Security |
| 日志 |
slog, logrus, Logback, loguru, Winston |
| 配置管理 |
Viper, Spring Cloud Config, dotenv, pydantic |
| 参数校验 |
go-playground/validator, Hibernate Validator, Pydantic |
| ORM |
GORM, sqlc, Spring Data JPA, Hibernate, SQLAlchemy, Prisma, TypeORM |
| 数据库迁移 |
golang-migrate, Flyway, Liquibase, Alembic |
| 任务调度 |
Asynq, gocron, Celery, Quartz, Bull |
| 消息队列 |
RabbitMQ, Apache Kafka, Redis Streams, NATS |
| 分布式追踪 |
OpenTelemetry, Jaeger, Zipkin |
| 限流熔断 |
Redis令牌桶, Sentinel, Hystrix |
| 单元测试 |
testing, testify, JUnit, pytest, Jest |
| 集成测试 |
testcontainers, Postman Newman |
| 性能压测 |
k6, JMeter, wrk |
三、数据库与存储
| 分类 | 技术选项 |
| 关系型数据库 |
PostgreSQL, MySQL, SQLite, SQL Server |
| 缓存数据库 |
Redis, Memcached |
| 搜索引擎 |
Elasticsearch, Meilisearch, Typesense |
| 时序数据库 |
Prometheus, InfluxDB |
| 对象存储 |
MinIO, AWS S3, 阿里云OSS, 腾讯云COS |
| 数据仓库 |
ClickHouse, BigQuery, Snowflake |
四、中间件与基础设施
| 分类 | 技术选项 |
| 反向代理 |
Nginx, HAProxy, Traefik, Caddy |
| API网关 |
Kong, APISIX, Envoy, Spring Cloud Gateway |
| 负载均衡 |
Nginx, F5, AWS ELB |
| 服务发现 |
Consul, etcd, Nacos, Eureka |
| 消息代理 |
RabbitMQ, Kafka, Redis |
| 容器化 |
Docker, Podman |
| 容器编排 |
Kubernetes (k8s), Docker Swarm, Nomad |
| 镜像仓库 |
Harbor, Docker Hub, AWS ECR, 阿里云ACR |
| CI/CD |
GitHub Actions, GitLab CI, Jenkins, Argo CD |
| 代码仓库 |
GitHub, GitLab, Bitbucket, Gitee |
五、运维与监控
| 分类 | 技术选项 |
| 监控指标 |
Prometheus, VictoriaMetrics |
| 可视化 |
Grafana, Kibana, Datadog |
| 日志收集 |
Loki + Promtail, ELK Stack (Elasticsearch, Logstash, Kibana), Fluentd |
| 追踪 |
Jaeger, Zipkin |
| 告警 |
Alertmanager, Grafana Alerting |
| 系统监控 |
Zabbix, Nagios, Netdata |
| 错误追踪 |
Sentry, Bugsnag |
| 性能分析 |
Pyroscope, pprof, async-profiler |
| SSL证书管理 |
Let's Encrypt, Cert-Manager |
| 密钥管理 |
HashiCorp Vault, Kubernetes Secrets, AWS Secrets Manager |
| 容器安全扫描 |
Trivy, Grype, Clair |
项目背景
六、前端技术栈(具体选型)
| 分类 | 选型 | 理由 |
| 语言 |
TypeScript |
类型安全,减少运行时错误 |
| 框架 |
React 18 |
生态丰富,适合复杂后台 |
| 构建工具 |
Vite |
开发热更新快,生产构建基于 Rollup |
| 包管理器 |
pnpm |
节省磁盘空间,依赖提升快 |
| 路由 |
React Router v6 |
支持嵌套路由、懒加载、权限守卫 |
| 状态管理 |
Redux Toolkit + RTK Query |
全局状态(用户信息、主题)+ 自动缓存 API 数据 |
| UI 组件库 |
Ant Design 5.x |
后台组件齐全,支持 Table、Form、Modal 等 |
| CSS 方案 |
Tailwind CSS + SCSS |
Tailwind 快速布局,SCSS 处理复杂样式 |
| HTTP 客户端 |
Axios |
拦截器统一加 token、刷新 token |
| 表单管理 |
React Hook Form + Zod |
高性能表单 + 声明式校验 |
| 图表(可选) |
ECharts |
展示用户增长趋势 |
| 国际化 |
i18next |
预留中英文切换 |
| 测试 |
Vitest + Testing Library + Playwright |
单元测试 + 组件测试 + E2E 测试 |
| 代码规范 |
ESLint + Prettier + Husky |
统一风格,pre-commit 自动格式化 |
七、后端技术栈(具体选型)
| 分类 | 选型 | 理由 |
| 语言 |
Go 1.22 |
高并发、内存占用低、部署单二进制 |
| Web 框架 |
Gin |
轻量、性能好、中间件生态丰富 |
| API 风格 |
RESTful |
简单直观,满足需求 |
| 认证授权 |
JWT (github.com/golang-jwt/jwt) + Casbin (RBAC) |
JWT 无状态,Casbin 灵活管理角色权限 |
| 日志 |
slog (Go 标准库) |
结构化日志,性能好,无需三方依赖 |
| 配置管理 |
Viper |
支持 yaml/env/命令行,热加载 |
| 参数校验 |
go-playground/validator |
结构体标签校验,与 Gin 集成良好 |
| ORM |
GORM |
开发效率高,支持钩子、关联查询 |
| 数据库迁移 |
golang-migrate/migrate |
版本化 SQL 脚本,CI/CD 自动执行 |
| 任务调度 |
Asynq (基于 Redis) |
处理异步任务:发送欢迎邮件、清理日志 |
| 消息队列 |
Redis Streams (Asynq 内置) |
轻量,无需额外部署 RabbitMQ |
| 缓存 |
Redis (go-redis) |
存储 JWT 黑名单、用户会话限流 |
| 单元测试 |
testing + testify |
标准库 + 断言库 |
| 集成测试 |
testcontainers-go |
启动临时 PostgreSQL/Redis 进行测试 |
| 性能压测 |
k6 |
脚本化压测登录接口,验证 QPS |
八、数据库与存储(具体选型)
| 分类 | 选型 | 理由 |
| 关系型数据库 |
PostgreSQL 16 |
支持 JSON 字段、全文检索、高并发 |
| 缓存数据库 |
Redis 7.2 |
高性能,支持多种数据结构 |
| 对象存储 |
MinIO (自建) |
存储用户头像,兼容 S3 API |
| 时序数据库(可选) |
Prometheus |
采集 Go 应用指标,供 Grafana 展示 |
| 搜索引擎(可选) |
Elasticsearch 8.x |
存储操作日志,便于全文检索 |
九、中间件与基础设施(具体选型)
| 分类 | 选型 | 理由 |
| 反向代理 |
Nginx |
高性能,SSL 终止,静态资源缓存 |
| API 网关 |
Kong (可选) |
统一入口,限流、API 聚合;小项目可直接 Nginx |
| 容器化 |
Docker + Docker Compose (开发/测试) |
环境一致性 |
| 容器编排 |
Kubernetes (生产) |
自动扩缩容、滚动更新 |
| 镜像仓库 |
Harbor (自建) |
存储私有镜像,漏洞扫描 |
| CI/CD |
GitHub Actions + Argo CD |
GitHub 触发 CI 构建镜像,Argo CD 同步 K8s 部署 |
| 代码仓库 |
GitHub 私有仓库 |
版本控制、PR 审查 |
十、运维与监控(具体选型)
| 分类 | 选型 | 理由 |
| 监控指标 |
Prometheus |
采集 Gin 暴露的 /metrics,记录请求延迟、错误率 |
| 可视化 |
Grafana |
仪表盘查看 QPS、内存、数据库连接数 |
| 日志收集 |
Loki + Promtail |
轻量,与 Grafana 无缝集成 |
| 分布式追踪 |
Jaeger (仅压测时启用) |
分析慢请求链路 |
| 告警 |
Alertmanager |
磁盘 > 80% / API 错误率 > 1% 时钉钉通知 |
| 错误追踪 |
Sentry (SaaS) |
捕获前端和后端未处理异常 |
| SSL 证书 |
Let's Encrypt + Cert-Manager |
自动续期 K8s Ingress 证书 |
| 密钥管理 |
Kubernetes Secrets + 外部 Vault |
存储数据库密码、JWT 密钥 |
十一、整体架构部署简图(文字)
用户浏览器
│
▼
CDN (Cloudflare) → Nginx (SSL) → Kubernetes Ingress (Kong)
│
├─→ 前端 Pod (React + Vite 构建的静态文件,由 Nginx 容器提供)
│
└─→ 后端 Service (Go Gin) ─┬─→ PostgreSQL (StatefulSet)
├─→ Redis (Deployment)
├─→ MinIO (Deployment)
└─→ Elasticsearch (StatefulSet,存日志)
十二、为什么不选其他技术(举例说明)
-
前端为何不用 Vue?团队 React 经验更丰富,且 Ant Design 的 Table 组件更强大。
-
后端为何不用 Java?项目并发要求中等,Go 开发效率高、内存占用小,运维简单。
-
消息队列为何不用 Kafka?日均 10 万请求量,Redis Streams 足够,减少组件复杂度。
-
监控为何不用 Zabbix?Prometheus + Grafana 云原生生态更适配 Kubernetes。