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

2024-04-27 22:40:18 +08:00
luckykelan  luckykelan

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

2495 次点击
所在节点   Cloudflare  Cloudflare
10 条回复
echoless
echoless
2024-04-27 23:27:09 +08:00
cf 并不能直接访问传统云数据库 d1 或者 neon 这种 severless 的才行
echoless
echoless
2024-04-27 23:28:53 +08:00
更正 现在好像可以了 之前我记得不行
lekai63
lekai63
2024-04-27 23:54:28 +08:00
worker 可以用 D1

但貌似 D1 没有 [事务] ,你们要不要再斟酌下
epiloguess
epiloguess
2024-04-27 23:57:06 +08:00
luckykelan
luckykelan
2024-04-28 00:18:35 +08:00
@lekai63 确实... 事务到还好,只是数据迁移是个比较头疼的问题
luckykelan
luckykelan
2024-04-28 00:18:42 +08:00
@epiloguess 这个好贵啊
epiloguess
epiloguess
2024-04-28 00:37:31 +08:00
@luckykelan 是我理解错了抱歉,因为我一直在用 prisma...目前 prisma 没有边缘兼容的 mysql 驱动,但如果要连接到你们自己的 SQL,似乎是可行的,建议你还是看文档吧,https://developers.cloudflare.com/workers/databases/connecting-to-databases/
luckykelan
luckykelan
2024-04-28 08:29:51 +08:00
@epiloguess 非常感谢!
codehz
codehz
2024-04-28 08:45:00 +08:00
请先确定有没有必要用 worker ,是否有成本优势或者延迟优势,在有一个集中的数据库的情况下这些都不是很明朗
catchmeup
catchmeup
2024-04-28 09:48:17 +08:00
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