服务器可扩展性
当你向服务中添加更多实例时,只要在它们前面配置了合适的负载均衡机制,这些实例就会共享 HTTP 负载。在大多数部署模式中,我们会自动为服务配置负载均衡器。在“无控制平面的自托管”模式下,你需要自行添加负载均衡器。由于实例是无状态的,任何负载均衡策略都适用,不需要也不建议使用会话粘性。服务器的任何实例都可以与任何队列实例(通过 Redis PubSub)通信,这意味着取消或流式传输正在运行的任务的请求可以由任意实例处理。队列可扩展性
当你向服务中添加更多队列工作进程时,它们会线性提高任务处理吞吐量,因为每个队列工作进程都被配置为执行一定数量的并发任务(N_JOBS_PER_WORKER,默认为 10)。此值控制并发任务执行,而非部署可以处理多少 API 请求。每次任务的每次尝试都将由单个实例处理,并通过 Postgres 的 MVCC 模型强制实现精确一次语义(有关崩溃恢复的详细信息,请参见下文)。由于瞬时数据库错误导致的尝试失败会最多重试 3 次。我们不使用长期事务或锁,这使我们能够更高效地利用 Postgres 资源。
弹性
当一个任务正在被队列实例处理时,该队列工作进程会定期在 Redis 中记录一个心跳时间戳。 当收到优雅停机请求(SIGINT)时,实例进入停机模式,该模式会:- 停止接受新的 HTTP 请求
- 给予任何正在执行的任务有限的秒数来完成(如果未完成,它将被放回队列)
- 阻止该实例从队列中获取更多任务
Postgres 弹性
在 LangSmith 管理 Postgres 数据库的部署模式中,会进行定期备份并配置持续复制的备用副本以实现自动故障转移。此 Postgres 配置仅在专用部署类型的云部署选项中可用。 所有与 Postgres 的通信都为可重试错误实现了重试机制。如果 Postgres 暂时不可用,例如在数据库重启期间,大部分/所有流量应能继续成功处理。Postgres 的长时间故障将导致 Agent 服务器不可用。Redis 弹性
所有需要持久化存储的数据都存储在 Postgres 中,而非 Redis。Redis 仅用于临时元数据以及实例间的通信。因此,我们对 Redis 没有持久性要求。 所有与 Redis 的通信都为可重试错误实现了重试机制。如果 Redis 暂时不可用,例如在数据库重启期间,大部分/所有流量应能继续成功处理。Redis 的长时间故障将导致 Agent 服务器不可用。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

