V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
FlashEcho
V2EX  ›  程序员

Serverless 里怎么处理需要建立长连接的外部资源?

  •  
  •   FlashEcho · 1h 44m ago · 193 views

    最近在 Cloudflare Workers 上接外部 Redis / Valkey ,发现传统 Node 服务那套“建一个 Redis client 然后复用连接”的思路不太行

    Worker 会冷启动、冻结、恢复或回收,模块级 client 虽然能复用,但不像常驻进程里的连接池那么可靠。实际遇到的现象是:client 看起来 ready ,但 Redis 命令经常 timeout ,后续还会引发一些连带错误。尤其是从 cloudflare 阿姆斯特丹机房到 digital ocean 班加罗尔机房的连接质量差得离谱,已经超时到无法忍受了

    我现在的临时处理是:Serverless 侧不直接维护 Redis TCP 连接,改成通过 HTTP 访问 Redis ,把连接池放到更适合常驻运行的地方。现在从 cloudflare 全球机房,到 racknerd 洛杉矶机房的 redis 代理,到 digital ocean 旧金山机房里的真实 redis 。虽然绕路更多了,但是基本不超时了

    Worker -> HTTP -> Redis proxy -> Redis 但自建 Redis proxy 也挺麻烦,平台原生的 redis 资源又很贵

    想请教大家:Serverless / Edge Runtime 里访问 Redis 、数据库、MQ 这类需要连接的外部资源,大家一般是直接连、HTTP API / proxy ,还是尽量改用平台原生存储?这种情况下有没有什么最佳实践?

    1 replies    2026-05-09 12:42:47 +08:00
    tf2
        1
    tf2  
       1h 19m ago
    官方那个 Durable Object 啊
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5582 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 06:02 · PVG 14:02 · LAX 23:02 · JFK 02:02
    ♥ Do have faith in what you're doing.