跳到主要内容

3 篇博文 含有标签「backend」

查看所有标签

LLM 应用中的 SSE vs WebSockets vs gRPC Streaming:那个稍后会让你头疼的协议抉择

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数构建 LLM 功能的团队选择流式协议的方式就像选择字体一样:快速、不加思索,然后忍受由此带来的后果多年。这种选择第一次让你踩坑通常是在生产环境中——比如 CloudFlare 524 超时导致你的 SSE 流损坏,WebSocket 服务器在持续负载下发生内存泄漏,或者 gRPC-Web 集成在单元测试中表现良好,但在客户端需要向上游发送消息时静默失败。协议决定了你的故障模式。基于基准吞吐量进行选择是一个错误的切入点。

每个主要的 LLM 提供商——OpenAI、Anthropic、Cohere、Hugging Face——都通过 Server-Sent Events (SSE) 流式传输 Token。这一事实是一个强有力的先验理由,但并不是因为 SSE 快。而是因为 SSE 是无状态的,能与 HTTP 基础设施轻松兼容,且其故障模式是可预测的。问题的关键在于你的应用是否有某些需求迫使你偏离这条路径。

数据库连接池:AI 流水线中被忽视的性能瓶颈

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI 功能上线了。在预发环境中,响应时间看起来还不错。一周后,生产环境开始出现神秘的 p99 尖峰——在中等负载下,延迟从 800ms 飙升至 8 秒,而 GPU 压力正常,模型没有报错,也找不到明显原因。你扩容了更多副本,没有改善。你对模型服务做了性能剖析,没有问题。你加了缓存,还是没用。

最终,有人查了数据库连接池的等待时间。从第三天起,它的利用率就已经高达 95%。

这是 AI 生产事故中最常见的一类,却鲜有人谈及——因为连接池耗尽的表现很像模型变慢。症状出现在错误的层级:你看到的是 LLM 调用延迟高,而不是数据库查询慢,所以定位问题往往需要数天,而用户一直在忍受降级的响应。

Agent 友好型 API:当 AI 成为客户端时,后端工程师常犯的错误

· 阅读需 13 分钟
Tian Pan
Software Engineer

在 2024 年,自动化机器流量在互联网上首次超过了人类流量。Gartner 预测,到 2026 年,超过 30% 的新 API 需求将来自 AI Agent 和 LLM 工具。然而,只有 24% 的组织在设计 API 时明确考虑了 AI 客户端。

这一差距正是生产系统崩溃的地方。并不是因为 LLM 本身表现不佳,而是因为为人类开发者构建的 API 包含了一些默认假设,当调用者是自主 Agent 时,这些假设会悄无声息地失效。Agent 无法请求澄清,无法阅读文档网站,也无法自行判断 422 错误是指“修改你的请求”还是“几秒钟后重试”。

这篇文章是写给那些刚刚发现自己的服务正被 AI Agent 调用,或者即将构建此类服务的后端工程师的。