写点什么

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

发布了 1848 篇内容, 共 113.7 次阅读, 收获喜欢 78 次。

关注

评论

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

提升您的 MQTT 云服务:深入探索 BYOC

EMQ映云科技

物联网 云服务 mqtt

mac电脑如何远程控制win?微软远程桌面连接工具来帮你!

Rose

Mac远程控制软件 mac电脑如何远程控制win microsoft remote desktop 微软远程桌面连接工具

华为教育中心:奇趣“童”行庆六一 多彩儿童应用助成长

科技热闻

乘云而上,山西软件行业CXO思享会在晋起航

说山水

实现mac电脑与安卓互通|MacDroid 破解版

理理

MacDroid for mac 安卓设备文件传输助手 MacDroid中文 MacDroid破解 mac与安卓同步

开源创新 协同融合|2023开放原子全球开源峰会开源协作平台分论坛即将启幕

开放原子开源基金会

开源 开源协作

智能出行 驱动未来|2023开放原子全球开源峰会CARSMOS开源智能出行生态年会即将启幕

开放原子开源基金会

开源 智能出行 CARSMOS

秒验 iOS端集成指南

MobTech袤博科技

重新思考流处理与流数据库

吴英骏

开源 云原生 流处理 ​Rust 实时数据库

对应用数据开发还有疑惑?看这篇就够了!数据存储、管理,通通掌握!

HarmonyOS开发者

HarmonyOS

一次网络请求中的流量分发过程 | 京东云技术团队

京东科技开发者

数据传输 企业号 6 月 PK 榜 流量分发 网络请求

BFF层聚合查询服务异步改造及治理实践 | 京东云技术团队

京东科技开发者

优化技巧 企业号 6 月 PK 榜 BFF层 异步优化

大型 3D 互动开发和优化实践 | 京东云技术团队

京东科技开发者

游戏 3D 企业号 6 月 PK 榜 互动游戏

Java 高效处理千万级数据:技巧与最佳实践

xfgg

Java 大数据

Scrum敏捷项目管理真实案例

顿顿顿

Scrum 敏捷开发 敏捷开发管理 敏捷项目管理 scrum工具

在软件定义汽车的时代,低代码究竟给车企数字化转型带来了什么?

优秀

低代码 车企 车企数字化

WaveMetrics Igor Pro 9 for Mac(科学计算和数据分析软件)

理理

苹果软件资源站 mac科学计算软件 WaveMetrics Igor Pro 9 Igor Pro 9破解

技术的交流 思想的碰撞|2023开放原子全球开源峰会TOC面对面分论坛即将启幕

开放原子开源基金会

开源 社区 TOC

世界500强开滦集团的财务共享建设路径

用友BIP

财务共享

Mac电脑ps ai beta安装教程及ai绘图如何使用

理理

ps AI绘图 ps ai beta Firefly AI使用教程

百度倾力出品|《神经网络机器翻译技术及产业应用》正式上线

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

软件测试/测试开发丨接口测试学习笔记

测试人

程序员 软件测试 自动化测试 测试开发

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

鳄鱼视界

客服都要下岗了? 当ChatGPT遇见私有数据,秒变AI智能客服!

WorkPlus

AI2023下载 Illustrator mac版 2023 年 4 月版(版本 27.5)的新增功能

理理

AI2023下载 Adobe Illustrator2023 AI2023完美解锁版

CodeWhisperer 初体验

天黑黑

AI 亚马逊云 CodeWhisperer

如何在大学校园内合作运营共享电单车

共享电单车厂家

校内共享电单车 共享电动车投放 共享电单车合作 共享电单车厂家

led显示屏保养技巧

Dylan

故障 LED显示屏 设备日常保养

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

西柚子

复杂Flink任务Task均衡调度和优化措施

Openlab_cosmoplat

大数据

玩转服务器之应用篇:从零开始构建小型高可用环境

京东科技开发者

高可用 云主机 云服务器 企业号 6 月 PK 榜

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