大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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:00876
用户头像

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

关注

评论

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

YashanDB支持的数据模型类型及应用场景

数据库砖家

YashanDB支持的用户权限管理与安全策略

数据库砖家

YashanDB支持的多语言接口及开发指南

数据库砖家

YashanDB支持的多种数据类型及其应用价值

数据库砖家

黑龙江等保测评公司选择关键维度:服务能力与适配性

等保测评

黑龙江等保测评公司选择进阶考量:口碑与可持续合作

等保测评

AI GEO领域发展机遇大

跑一跑

geoai

YashanDB支持的多语言开发环境及使用技巧

数据库砖家

YashanDB支持的数据库加密技术详解

数据库砖家

把Nano Banana设计图送进工厂车间,造好物用了三步

脑极体

AI

为时序数据库 IoTDB 底层架构“保驾护航”,来听听新晋 Committer 的贡献心路!

Apache IoTDB

第三届人工智能与自动化控制国际学术会议(AIAC 2025)

搞科研的小刘

人工智能 自动化 学术会议

零售业将在 2025 年引领 RFID 革命

斯科信息

斯科信息 RFID技术 RFID门禁系统 RFID收银设备

YashanDB支持的数据库事务类型及应用分析

数据库砖家

YashanDB智能分片技术介绍与应用指南

数据库砖家

从条形码到智能跟踪:物联网和RFID如何共同发展

斯科信息

RFID标签

【西京学院主办】第九届电气、机械与计算机工程国际学术会议(ICEMCE 2025)

搞科研的小刘

学术会议 国际会议

CST软件如何确定Floquet模数和背景距离

思茂信息

cst cst仿真软件 CST软件 CST Studio Suite

YashanDB支持的存储引擎及其应用场景

数据库砖家

YashanDB支持的高级SQL特性实践

数据库砖家

YashanDB支持的接口与API使用方法详解

数据库砖家

YashanDB支持的数据加密传输技术剖析

数据库砖家

哈尔滨二级等保办理全流程:从准备到完成的清晰指引

等保测评

区块链U卡APP的的开发过程

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

YashanDB支持的大数据技术:适合未来数据处理的方法

数据库砖家

YashanDB支持的多种认证方式及配置方法

数据库砖家

YashanDB支持的数据库监控工具及实现方法

数据库砖家

BongoCat - 可爱的桌面互动猫咪

qife122

Vue3 桌面宠物 交互式应用

YashanDB支持的存储引擎架构特点详细介绍

数据库砖家

YashanDB支持的多种存储引擎及应用场景解析

数据库砖家

Strands Agents SDK 助力翰德 Hudson 实现智能招聘新突破

亚马逊云科技 (Amazon Web Services)

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