V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
luckykelan
V2EX  ›  Cloudflare

请问大佬,使用 CloudFlare 的 worker 部署 api 服务,数据库应该怎么选择

  •  
  •   luckykelan · 12 天前 · 938 次点击

    我是一个 CF 新手,关于 CF 的数据库使用,有几个问题想请教大家 我们现在使用的是 mysql 数据库,如果使用 CF 的 D1 的话,需要写一个 worker 读取 mysql 再写入 D1 吗? 如果不使用 D1 的话,按照使用传统云厂商的经验,购买同一个地域的服务器和数据库,服务器可以使用内网地址访问数据库,效率更高。那么在 CF 不提供 mysql 的前提下,购买哪个厂商的数据库更好一些?

    10 条回复    2024-04-28 09:48:17 +08:00
    echoless
        1
    echoless  
       12 天前 via Android
    cf 并不能直接访问传统云数据库 d1 或者 neon 这种 severless 的才行
    echoless
        2
    echoless  
       12 天前 via Android
    更正 现在好像可以了 之前我记得不行
    lekai63
        3
    lekai63  
       12 天前
    worker 可以用 D1

    但貌似 D1 没有 [事务] ,你们要不要再斟酌下
    epiloguess
        4
    epiloguess  
       12 天前 via Android
    luckykelan
        5
    luckykelan  
    OP
       12 天前
    @lekai63 确实... 事务到还好,只是数据迁移是个比较头疼的问题
    luckykelan
        6
    luckykelan  
    OP
       12 天前
    @epiloguess 这个好贵啊
    epiloguess
        7
    epiloguess  
       12 天前
    @luckykelan 是我理解错了抱歉,因为我一直在用 prisma...目前 prisma 没有边缘兼容的 mysql 驱动,但如果要连接到你们自己的 SQL,似乎是可行的,建议你还是看文档吧,https://developers.cloudflare.com/workers/databases/connecting-to-databases/
    luckykelan
        8
    luckykelan  
    OP
       11 天前
    @epiloguess 非常感谢!
    codehz
        9
    codehz  
       11 天前
    请先确定有没有必要用 worker ,是否有成本优势或者延迟优势,在有一个集中的数据库的情况下这些都不是很明朗
    catchmeup
        10
    catchmeup  
       11 天前
    worker 就是一个云函数,所有变量会在请求过程中一次性创建并在请求后销毁,传统数据库一般要在内存中保存一个数据库连接或者连接池,云函数不支持(也可以硬在每次请求时创建数据库连接,但开销和耗时会很大,且高并发时可用数据库连接可能会耗尽)。所以 worker 最好配合 serverless 数据库使用,例如 planetscale.com(mysql,无免费套餐,较贵),neon.tech(postgress,开源,有免费套餐),d1(sqlite,较便宜)等。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1051 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:18 · PVG 06:18 · LAX 15:18 · JFK 18:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.