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

238 天前
 luckykelan

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

2128 次点击
所在节点    Cloudflare
10 条回复
echoless
238 天前
cf 并不能直接访问传统云数据库 d1 或者 neon 这种 severless 的才行
echoless
238 天前
更正 现在好像可以了 之前我记得不行
lekai63
238 天前
worker 可以用 D1

但貌似 D1 没有 [事务] ,你们要不要再斟酌下
epiloguess
238 天前
luckykelan
238 天前
@lekai63 确实... 事务到还好,只是数据迁移是个比较头疼的问题
luckykelan
238 天前
@epiloguess 这个好贵啊
epiloguess
238 天前
@luckykelan 是我理解错了抱歉,因为我一直在用 prisma...目前 prisma 没有边缘兼容的 mysql 驱动,但如果要连接到你们自己的 SQL,似乎是可行的,建议你还是看文档吧,https://developers.cloudflare.com/workers/databases/connecting-to-databases/
luckykelan
238 天前
@epiloguess 非常感谢!
codehz
238 天前
请先确定有没有必要用 worker ,是否有成本优势或者延迟优势,在有一个集中的数据库的情况下这些都不是很明朗
catchmeup
238 天前
worker 就是一个云函数,所有变量会在请求过程中一次性创建并在请求后销毁,传统数据库一般要在内存中保存一个数据库连接或者连接池,云函数不支持(也可以硬在每次请求时创建数据库连接,但开销和耗时会很大,且高并发时可用数据库连接可能会耗尽)。所以 worker 最好配合 serverless 数据库使用,例如 planetscale.com(mysql,无免费套餐,较贵),neon.tech(postgress,开源,有免费套餐),d1(sqlite,较便宜)等。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036212

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX