Workers KV,基于边缘节点的无服务器式键值存储

2019 年 6 月 02 日

Workers KV,基于边缘节点的无服务器式键值存储

Cloudflare Workers 是一个无服务器平台,使开发人员能够将 JavaScript 代码和 WebAssembly APP 部署到 Cloudflare 广泛延伸的数据中心(截至如今,Cloudflare 已经在 80 个国家 180 多个城市搭建了其云网络数据中心)。Workers 可以扩展出数千个实例并拦截到站点的 HTTP 请求。这些实例不到 5 毫秒就可以完成启动,而实例完成运行最多只需 50 毫秒。到目前为止,如果一个 Worker 实例需要检索数据,开发人员要么将数据存储在Worker 实例本身的脚本中,要么从Cloudflare 的缓存中加载数据文件。之前在Cloudflare 团队的一篇博客中提及,在使用Workers 平台后不久,一些客户就提出了需求,需要更好地存储持久性数据。这就是促使Workers KV 诞生的源由。

Workers KV 有一个简单的读写API 接口,可以通过HTTP 或在Worker 实例内部进行调用。开发人员可以用文本、JSON、arrayBuffer 或stream 数据形式进行检索。该服务专门为快速读取而设计,据报道其平均响应时间为12 毫秒。写入Workers KV 的任何数据(大小可达2MB)在未使用静置时、在传输过程中,以及存储在本地磁盘时都会进行加密。Cloudflare 在beta 测试期间,通过添加用于批量加载的端点,极大地提高了写操作的性能。写入Workers KV 的键会自动在Cloudflare 的云网络上进行复制,不到60 秒就可以完成全球的一致性同步。然而, Cloudflare 的文档指出,只有那些最经常被访问的键值才会在全球范围内进行复制,Workers KV 对不会经常读取的值进行集中存储。这是一项“无服务器”的服务,即在客户不必接触任何基础设施操作的情况下,它就能完全实现其所有管理。所有部署、升级、扩展和数据复制都由 Cloudflare 处理。

虽然 Workers KV 的产品经理很谨慎,并没有透露关于这项服务所采用的备份存储或技术的细节,但他们还是信心满满地对这项服务做出了保证。Cloudflare 团队的一篇博文简要解释了 CAP 原理,并强调了其设计理念。

Workers KV 的设计同时兼顾了可用性和分区容错性。这种组合又称为最终一致性,它使 Workers KV 具有两个独特的竞争优势:

  • 在 Cloudflare 缓存技术的支持下,读取速度非常快(平均速度为 12 毫秒)。
  • 数据在 175+ 边缘数据中心中可用,并且在区域性故障中断情况下可迅速恢复。

不过,此最终一致性有时仍需要权衡。比如两个客户端同时向同一个键写入不同的值,后面那个客户端会最终“胜出”,其输入的值将成为全局一致的键值。

基于这些考虑因素,Workers KV 的典型应用场景是什么呢?Cloudflare 根据其客户目前构建的内容给出了一些用例示范

  • 海量的重定向,例如处理数十亿个 HTTP 重定向。
  • 用户身份验证,用以验证用户对 API 的请求。
  • 翻译相关的键,动态地完成网页本地化。
  • 配置数据,用以管理谁可以访问源数据。
  • 基于任务和状态机的 Step functions,在多个 API 函数之间同步状态数据。
  • 边缘节点上存储了大量小文件。

2018 年 9 月,Cloudflare 宣布开始 Workers KV 的 Beta 测试时,还建议可以用Workers 和Workers KV 构建一种既廉价性能又高的API 网关,这将比Amazon API 网关等其他方案便宜得多。在同一篇文章中,他们列出了与改变Worker 实例性能相关的其他用例,而使用Workers KV 进行这些改善并不需要进行重新部署、A/B 测试,甚至不需要为电商网站存储购物车数据。

Workers KV 现在已经发布正式商用版本并公开发布了其服务价格。如果用户已经有5 美元的Workers 包月订阅,那么可以自动获得的Workers KV 免费使用包括:1 GB 的存储,1000 万次读取操作和100 万次写入操作。如果你的实际使用超出了这些数量,则每月每GB 的存储收取0.5 美元,每100 万次读取操作收取0.5 美元,每100 万次写入操作收取5 美元。命名空间(Namespace)是容纳键值对的容器,Workers KV 支持开发人员创建多达 20 个命名空间,每个命名空间可容纳数十亿个键值对。用户每秒钟可以对每个键执行无限次读取和 1 次写入。

Cloudflare表示,这种新型的无服务器键值存储方式“为开发人员构建软件打开了一种全新的思路:以后的软件哪些部分放在服务器上,哪些放在客户端上,以及,哪些又放在互联网上呢?”

查看英文原文: Cloudflare Releases Workers KV, a Serverless Key-Value Store at the Edge

2019 年 6 月 02 日 08:00 13629
用户头像

发布了 0 篇内容,共 413 次阅读,收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

HomeWork

天之彼方

架构师训练营第9周

大丁💸💵💴💶🚀🐟

当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮

鄙人薛某

Java 面试 集合 面试题 java基础

Elasticsearch从入门到放弃:瞎说Mapping

Jackey

elasticsearch

秒杀系统设计初稿

jason

Atlassian 重磅推出12个新功能为您打造全新 DevOps 体验!

Atlassian速递

项目管理 DevOps Atlassian Jira

第9周总结+作业

林毋梦

树莓派上安装docker记录

田振宇

应用开发基础知识-文件系统

superman

文件系统

架构训练营第九周作业

张锐

Kafka集群缩容实战

大数据学徒

大数据 kafka 运维 Big Data

架构师训练营 - 第九周 - 作业

韩挺

JVM学习总结

jason

百度安全研究院:区块链智能合约介绍

百度安全

比特币 区块链 智能合约 以太坊

第九周总结

andy

关于微信电子发票生态,这三种服务商最有机会

诸葛小猿

电子发票 发票

【第九周作业】

Aldaron

大厂的人才衡量标准

池建强

人才标准

微服务架构下的核心话题 (一):微服务架构下各类项目的顺势崛起

xcbeyond

架构 微服务

架构师训练营第九章总结

叮叮董董

并发-草稿

superman

架构师训练营第九章作业

叮叮董董

起伏激荡的以太网,抱上这条大腿才能乘风破浪

脑极体

第九周作业

andy

极客大学

LeetCode题解:189. 旋转数组,3次翻转,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

总结

chenzt

JVM 垃圾回收原理

周冬辉

1.8w字 | 初中级前端 JavaScript 自测清单 - 2

pingan8787

JavaScript 前端 web前端

垃圾回收

Mr.Monkey

秒杀系统的挑战和应对方案

2流程序员

消息队列面试热点一锅端

yes的练级攻略

kafka RocketMQ 面试题 消息队列

众安黑客马拉松大赛总决赛-InfoQ小编探班

众安黑客马拉松大赛总决赛-InfoQ小编探班

Workers KV,基于边缘节点的无服务器式键值存储-InfoQ