Cloudflare Workers支持WebAssembly和键值存储

栏目: 后端 · 前端 · 发布时间: 6年前

内容简介:Cloudflare最近宣布给他们的“无服务器”服务对于类似重定向到不同的URL或者是检查授权令牌这样的轻量级任务,使用纯JavaScript会比使用WASM更快更方便。WASM程序会在自己独立的内存空间中运作,这代表着有必要将数据从那个空间进进出出地复制,以进行操作。和外部对象交互为主,不需要做类似“数据处理”的代码最好不要用WASM。

Cloudflare最近宣布给他们的“无服务器”服务 Workers 新增两个附加功能:将WebAssembly作为JavaScript的替代方案,提供了 对WebAssembly的支持 ,以及称为 Workers KV 的键值存储。WebAssembly可以使Workers可以通过C、C++、Rust和 Go 等多种编译语言编写。Workers KV提供了最终一致状态存储机制,托管在Cloudflare全球超过150个数据中心的网络中。

WebAssembly (又称WASM)是由W3C开发的,它针对JavaScript提供了更快(解析和执行)更简捷的替代方案, 在2017年底进入到主流的几款浏览器中 。它实现了抽象的结构化堆栈机,具有一个中间的字节码表示。它可以保证代码可以用多种编译语言编写(或重用自多种编译语言),只需简单地将其编译为.wasm文件即可。但现在对于.wasm的 工具 链支持还不成熟,Cloudflare的 演示 中“如何搭建”这一部分中包含有“Build lld from source”的详细介绍。Cloudflare还尽心地指出,WebAssembly有时候“并不总是适用的”,他们解释了什么时候适合使用WebAssembly:

对于类似重定向到不同的URL或者是检查授权令牌这样的轻量级任务,使用纯JavaScript会比使用WASM更快更方便。WASM程序会在自己独立的内存空间中运作,这代表着有必要将数据从那个空间进进出出地复制,以进行操作。和外部对象交互为主,不需要做类似“数据处理”的代码最好不要用WASM。

另一方面,当需要执行资源消耗大的、独立的操作,比如说调整图像大小,处理音频流等操作时,WASM会有很大帮助。这些操作需要许多数学运算和恰当的内存管理。尽管也可以在纯JavaScript中运行这样的操作,像V8这样的引擎也花了很多功夫来优化这种代码,但是最终并不能打败拥有静态类型和显示分配的编译语言。

在Cloudflare发表的 《通过Workers KV搭建》 博文中,介绍了一系列我们可以用这项技术实现的功能例子。这些包括实现使用访问令牌的API Gateway、页面中的动态数据(如翻译)、功能标志的配置以及有状态的云功能。他们还详细介绍了限制和价格:

每个命名空间最多10亿个密钥

最多2 kB的键

最多64 kB的值

最终一致,10秒内实现全局一致

每秒每键100k+的读

每秒每键最多1次写

Workers每月5美元起,包括1 GB的KV存储以及最多1万千次KV读取。如果你Worker请求的使用少于1千万次,那不支付1分钱就可以使用KV。

如果最基础要求不能满足,Workers KV每个月超过套餐的存储按照0.5美元/1 GB收费,超过套餐的KV读取按照每次0.5美元收费。

Cloudflare将Worker和Amazon的Lambda进行比较,不过可能更加公平的是和 Lambda@Edge 进行比较,它在AWS CloudFront Content Delivery Network ( CDN )中运行函数。这两种情况下,服务都会提供第三端(在全局CDN边缘)进行处理,就不需要在浏览器(或API客户端)或源点进行处理。这样边缘托管的目的是通过接近客户端的入网点提供低延迟服务,同时让客户端不需要承担计算开销(以及安全问题)。通过启用有状态的服务,Cloudflare开启了originless(无源)服务的可能性,仅存在于没有集中源点的边缘。

在宣布Workers对于WebAssembly的支持之前,Cloudflare的CEO Matthew Prince 写推文 道:“从长远角度来看,这可能是整个月我们做出的最大行业变更声明了”。其他功能即服务(FaaS)平台以及可以提供多语言的支持的基础下,WebAssembly可能是让开发人员喜爱的一种简单方式,只要工具链问题在广泛采纳之后得到解决即可。

查看英文原文: Cloudflare WebAssembly and Key Value Store for Workers

感谢冬雨对本文的审校。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

琢石成器

琢石成器

罗云彬 / 电子工业出版社 / 2009-6 / 89.00元

Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以开发出大型的软件,而且是了解操作系统运行细节的最佳方式。 本书从编写应用程序的角度,从“Hello,World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入Win32汇编语言编程的方方面面。 本书作者罗云彬拥有十余年汇编语言编程经验,是汇编编程......一起来看看 《琢石成器》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具