luckykelan

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

  •  
  •   luckykelan · Apr 27, 2024 · 3892 views
    This topic created in 929 days ago, the information mentioned may be changed or developed.

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

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

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