写点什么

Amazon Kinesis Data Streams 推出增强扇出功能和 HTTP/2 数据检索 API 功能

  • 2019-10-18
  • 本文字数:2146 字

    阅读完需:约 7 分钟

Amazon Kinesis Data Streams 推出增强扇出功能和 HTTP/2 数据检索 API功能

几周前,我们为 Amazon Kinesis Data Streams (KDS) 推出了两项重要的性能加强功能:增强扇出功能和 HTTP/2 数据检索 API。增强的扇出功能允许开发人员通过为每个数据流消费者提供其自己的读取吞吐量来扩增数据流消费者的数量(应用程序实时从数据流中读取数据)。与此同时,在常见情况下,HTTP/2 数据检索 API 允许在 70 毫秒或更短的时间内(提升了 65%)将数据从生产者传送给消费者。这些新功能可让开发人员依托 Kinesis Data Streams,构建速度更快、反应更灵敏、高度并行化且对延迟敏感的应用程序。


Kinesis 实际上是指一系列数据流服务: Kinesis Video StreamsKinesis Data FirehoseKinesis Data Analytics 以及今天这篇博文的主题 Kinesis Data Streams (KDS)。Kinesis Data Streams 提供完全托管且可大规模扩展的服务,让开发人员可以轻松连续地实时收集、处理和分析流数据。KDS 每秒可以捕获来自数十万个数据源的数千兆字节数据 – 囊括从网站点击流和社交媒体源,到金融交易和位置跟踪事件在内的各种数据。



Kinesis Data Streams 使用分片概念实现扩展。一个分片提供 1MB/s 或 1000 条记录/秒的传入容量和 2MB/s 的输出容量。客户利用数千乃至数万个分片支持数十 GB/s 的传入和传出容量的情况并不罕见。在增强的扇出功能问世之前,2MB/s/分片的输出容量由使用流中的数据的所有应用程序共享。利用增强的扇出功能,开发人员可以注册流消费者以使用增强的扇出功能,并在每个分片上获得自己的 2MB/s 读取吞吐量管道,而且这个吞吐量还能根据流中的分片数量自动进行扩展。在增强的扇出功能推出之前,客户经常要将其数据扇出到多个流,才能满足下游应用程序所需的读取吞吐量。在我们看来,这是毫无意义的繁重工作,因此我们决定为客户解决这一令人烦恼的问题。客户根据利用增强的扇出功能从流中检索的数据量以及每个分片的注册消费者数量来为增强的扇出功能支付费用。您可以在定价页面中找到更多信息。


在我们介绍全新 API 之前,首先来简单介绍一下 HTTP/2,以及我们要如何将其与全新的 SubscribeToShard API 配合使用。

HTTP/2

HTTP/2 是 HTTP 网络协议的一个主要修订版,它引入了一种在客户端与服务器之间构建数据帧和传输数据的新方法。这是一种二进制协议。它支持许多新功能,主要用于缩短延迟和提高吞吐量。第一项优势是使用 HPACK 压缩标头。另外一项有用的功能是允许我们使用单一 TCP 连接处理多个并行非阻塞请求的连接多路复用。另外,通信管道是双向的,不再使用 HTTP 的传统请求-响应语义。使用 HTTP/2 的服务器可以将多条响应推送到客户端,而无需等待客户端请求这些资源。Kinesis 的 SubscribeToShard API 利用此服务器推送功能来接收新记录,并利用另一项称为流控制的 HTTP/2 功能。Kinesis 将数据推送给消费者,并跟踪未确认的字节数。客户端通过向服务器发送 WINDOW_UPDATE 帧来确认收到的字节。如果数据传输速率达到了客户端无法处理的程度,则 Kinesis 会暂停数据流,直至收到新的 WINDOW_UPDATE 帧或 5 分钟的订阅到期为止。


现在我们已经了解了 SubscribeToShard 和 HTTP/2,接下来我们介绍一下如何利用增强的扇出功能!

使用增强的扇出功能


要使用增强的扇出功能,最简单的方法莫过于利用更新后的 Kinesis Client Library 2.0 (KCL)。KCL 会自动将自身注册为流的消费者。随后,KCL 会枚举分片,并使用新的 SubscribeToShard API 订阅这些分片。在底层连接终止后,它也会持续调用 SubscribeToShard。在后台,KCL 会使用在您的 AWS 账户中创建的 Amazon DynamoDB 表,处理分布式应用程序的检查点和状态管理。您可以在本文档中看到一个相关示例。


使用增强的扇出功能的一般流程如下:


  1. 调用 RegisterStreamConsumer,并提供 StreamARN 和 ConsumerName(通常是应用程序名称)。保存此 API 调用返回的 ConsumerARN。消费者注册完毕后,系统会立即启用增强的扇出功能,并开始根据消费者分片时数计费。

  2. 枚举流分片并使用 RegisterStreamConsumer 返回的 ConsumerARN,在每个分片上调用 SubscribeToShard。这会建立 HTTP/2 连接,KDS 会将 SubscribeToShardEvents 推送到侦听客户端。KDS 每隔 5 分钟会终止这些连接,因此如果您想继续接收事件,客户端将需要再次调用 SubscribeToShard。使用增强的扇出功能推送到客户端的字节数根据增强的扇出功能数据检索速率计费。

  3. 最后,如果您不再使用消费者,记得调用 DeregisterStreamConsumer,因为消费者会产生费用。


您可以在文档中看到一些关于此过程的示例代码导览。


您可以在控制台中查看 Amazon CloudWatch 指标并管理消费者应用程序,也可以取消注册这些应用程序。


现已推出

增强的扇出功能和全新的 HTTP/2 SubscribeToShard API 现已在所有区域推出,可用于新的流和现有的流。本文档提供了丰富翔实的信息,请参阅文档,了解更多信息。每个流均仅限 5 个消费者应用程序(例如,5 个不同的 KCL 应用程序)从所有分片中读取数据,但可以通过提交支持单来提高这个上限。我很高兴看到客户能利用这些新功能来降低管理多个流消费者的复杂性,并提高实时应用程序的速度和并行性。


与以往一样,欢迎大家在这篇博文下方或 Twitter 上发表评论。


作者介绍:


Randall Hunt


AWS 全球高级布道师。此前供职于 NASA, SpaceX 及 MongoDB。


本文转载自 AWS 技术博客。


原文链接:


2019-10-18 08:00806
用户头像

发布了 1907 篇内容, 共 146.6 次阅读, 收获喜欢 81 次。

关注

评论

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

LED显示屏:多功能与创新应用

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家 户内led显示屏

怎么测试网站是否通过IPv6改造?IPv6检测指标有哪些?

国科云

linux有哪些常用命令?

秃头小帅oi

智能生产管控数字化平台(源码+文档+讲解+演示)

深圳亥时科技

个人开发者也能训练推理模型?GRPO 技术详解

Baihai IDP

AI 强化学习 推理模型 LLMs DeepSeek

Nova for Mac:现代开发者的代码编辑器

小玖_苹果Mac软件

PullTube for Mac:轻松下载与转换在线视频

小玖_苹果Mac软件

阿里万相重磅开源,人工智能平台PAI一键部署教程来啦

阿里云大数据AI技术

人工智能 AIGC PAI 万相

黑龙江等保测评到底哪些企业必须做?一文详解,避免踩坑!

黑龙江陆陆信息测评部

低代码加速智能制造,兰之天的选择是 NocoBase

NocoBase

开源 低代码 数字化转型 制造业 中小企业

基于Kerberos认证对接华为云Elasticsearch

大河

elasticsearch 华为云 bboss

AI 搜索开放平台 × DeepSeek,面向企业及开发者的首选解决方案

阿里云大数据AI技术

人工智能 搜索 rag AI搜索 DeepSeek

每日一题(源码+文档+讲解+演示)

深圳亥时科技

合合信息与中科曙光签署合作协议,助力加速信创国产化进程

合合技术团队

人工智能 AI 算法 #大数据

Text Workflow for mac(文本格式转换工具)v2.2.2直装激活版

小玖_苹果Mac软件

Microsoft Outlook 2024 LTSC for Macv16.94.2中文正式版

Rose

淘宝淘口令转换API接口(淘宝API系列)

tbapi

淘宝API 淘宝淘口令API 淘宝口令接口 淘口令转换接口

java中如何实现单链表反转

秃头小帅oi

FastScripts for Mac:高效脚本管理与快捷操作工具

小玖_苹果Mac软件

百万级群聊的设计实践

vivo互联网技术

后端 IM 群聊

Svelte 最新中文文档教程(21)—— 自定义元素

冴羽

vue.js 前端 React Svelte SvelteKit

隐形的守护者(风控技术篇)-时序流异常检测(Self-Isolation-Stream)

京东零售技术

防钓鱼邮件必看!轻、快、好的打造企业邮箱"金钟罩",只需……

芯盾时代

身份安全 双因子认证 统一身份管理平台

和鲸科技受邀出席全球开发者先锋大会,共话数智驱动下的医疗健康语料

ModelWhale

人工智能 大数据 #AI 全球开发者大会 GDC

周边生态 | WAL-G 与 DBeaver 新版增加 Cloudberry 支持

酷克数据HashData

HTTPS 与 HTTP 的区别在哪?

伤感汤姆布利柏

Capture One Studio for Mac:摄影后期处理的终极选择

小玖_苹果Mac软件

Amazon Kinesis Data Streams 推出增强扇出功能和 HTTP/2 数据检索 API功能_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章