AI Agent 应用后端工程能力
Java SSE 转发实战
介绍 Java API 如何转发 AI Service 的 SSE 流,并处理登录、额度、错误和浏览器断开。
AI Agent 应用后端工程能力intermediateJavaSSESpring Boot流式输出
Java SSE 转发实战
Java SSE 转发真正要解决的,不是“把流拿过来再发出去”这么简单,而是让一条来自 AI 服务的增量结果,在经过认证、额度、日志和错误处理后,仍然能稳定送到浏览器。
所以它本质上是业务入口层对流式能力的一次接管,而不是纯转发。
为什么前端不该直连内部 AI 服务
只要系统里有登录、额度、审计或权限,前端就不该直接连内部 AI 服务。因为真正需要控制的是:
- 谁能发起这次请求。
- 这次请求是否还有额度。
- 这次流式调用最终怎样记日志。
- 中途断开或报错该怎么算。
这些都不该留给浏览器自己处理。
一条流式调用通常要接住什么
一次实际的 SSE 转发,至少要接住:
- 建链前校验身份和额度。
- 建链后持续转发增量事件。
- 中途错误时给前端明确状态。
- 完成后写入日志并结算。
真正麻烦的地方,不是“流会不会流出来”,而是异常路径和收尾路径。
最容易漏掉的收尾动作
很多实现只在 happy path 上做得很好,一旦浏览器断开、下游超时、模型半路失败,系统就开始出现:
- 日志没写全
- 额度没结算
- 状态停在半路
所以 SSE 的关键,不只是开始流,而是怎样正确结束。
一句话先记住
SSE 转发不是把字节转给前端,而是把一条受治理的流式调用交付给前端。
继续阅读
02-llm-basic/003-streaming-response.md09-ai-agent-engineering/002-ai-call-log.md