再启 · 全栈应用实践
这是一个我独立完成的全栈项目,用来验证「大语言模型能力如何嵌入真实业务流」这件事。 项目从架构设计、后端实现、管理后台到多端前端,均由我一人完成。
技术栈
| 后端 | Java 21 · Spring Boot 3.2 · MyBatis-Plus |
|---|---|
| 数据层 | MySQL 8 · Redis(缓存与会话) · 向量检索 |
| 消息与存储 | RabbitMQ · MinIO 对象存储 |
| 管理后台 | Vue 3 · Vite · Element Plus |
| 多端前端 | uni-app(Vue 3)· H5 · 微信小程序 |
| 实时通信 | WebSocket(自动适配 ws / wss) |
| 部署 | Nginx 反向代理 · Let's Encrypt TLS · systemd |
遇到的几个技术点
一、流式响应与前端渲染。模型输出是流式的,后端用 SSE 推、前端增量渲染。难点在于打断与重连的处理,以及弱网下的降级策略。
二、多端代码复用。用 uni-app 一套代码同时产出 H5 和微信小程序。构建期通过环境变量注入不同的 API 地址,避免多套配置互相污染。
三、WebSocket 协议自适应。开发环境是 ws://,生产环境必须是 wss://。不能写死,要根据页面协议自动推导,否则上线后连不上。
四、配置与密钥管理。把数据库、缓存、对象存储、第三方模型的密钥全部外置为环境变量,代码仓库里不留任何明文凭证。
工程化的一些做法
- 后端打包为单 JAR,便于部署与回滚
- 前端构建产物按环境区分,配置走构建期注入
- 用 Nginx 统一做 TLS 终止与反向代理
- 数据库变更脚本版本化,可追溯
小结
这个项目让我把后端、前端、运维串成了一条线。最大的收获不是某个具体技术点, 而是理解了「一个想法要变成能稳定跑起来的东西,中间有多少工程细节」。