APP下载

Cloudflare无服务器服务Workers现在支援关联式数据库

消息来源:baojiabao.com 作者: 发布时间:2024-05-21

报价宝综合消息Cloudflare无服务器服务Workers现在支援关联式数据库

Cloudflare宣布在其无服务器运算服务Workers,加入关联式数据库的支援,来完善Cloudflare所提供的储存解决方案。因此用户现在也可以将应用程序搬迁到Workers上,并且处理储存于包括Postgres和MySQL关联式数据库中的资料。

过去Cloudflare已经提供多种储存解决方案,包括Workers KV、R2和Durable Objects,另外,Cloudflare也和Fauna、MongoDB和Prisma等第三方储存解决方案合作,供用户使用全球可大规模扩展的储存服务,但官方提到,储存解决方案还缺一大块拼图,便是关联式数据库。

而之所以Cloudflare迟迟尚未提供关联式数据库支援,官方解释,无服务器数据库连接不是一件简单的工作,并非简单地传递字串给数据库驱动程式就能完成,有许多障碍需要克服。Workers存在限制,并无法简单地连接到数据库,应用程序与数据库的连接通常需要TCP连接,因为两者间的连结被假设为长期连接,但是Workers Runtime并不支援TCP连接,因此只能支援基于HTTP的数据库和代理。

光是建立连接也还不够,开发人员使用数据库客户端函式库,来简化查询提交,还有管理回应的过程,由于Workers Runtime并不完全相容Node.js,因此Workers要支援关联式数据库,Cloudflare还要推出自己的数据库函式库,或是找一个未使用不受支援函式库的数据库。另外,考量数据库的敏感性,通常需要使用外部函式库,来共享应用程序服务器和数据库间的连接,因为建立这些连接的成本往往很高。

Cloudflare现在一一克服了这些问题,首先Cloudflare利用现有的基础设施,创建一个由Cloudflare到用户私人网络基础设施的安全通道,并且利用WebSockets,支援代理HTTP成TCP,官方解释他们的做法,透过提供与现有函式库相容的Socket界面,并将读写操作重新导向Websocket。

Cloudflare提到,这个方法快速且安全,但缺点在于他们无法控制最终连接的目的地,虽然该问题不难解决,但是在这之前,Cloudflare还需要改进延迟以及效能上的问题。Cloudflare也创建了一个垫片层,调整热门Runtime中的Socket API,使其能利用WebSocket直接连接到数据库,如此Cloudflare便能够按照原样捆绑程式码,不需要额外分叉或是以其他方式大改数据库函式库。

目前这项工作才刚开始,目的是要让用户能在建构新的应用程序,或是将原有应用程序搬迁到Workers的时候,具有处理关联式数据库资料的能力,接下来还会进行一连串改进。官方提到,他们着手更新Runtime原生支援TCP,以更好地连接数据库,而且也能够扩展Workers Runtime更广泛地处理数据库基础设施。

Cloudflare会利用当前建构代理HTTP到TCP服务,并将其以连接池服务的方式提供,并代表用户管理数据库的连接,而且Cloudflare也要使用自家网络快取资料的能力,让用户低延迟存取全球资料。

2021-11-16 19:45:00

相关文章