写点什么

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

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

关注

评论

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

目前只To B,腾讯云为什么优先发布行业大模型,而非大模型?

B Impact

数智人力:如何通过搭建全球人才供应链帮助企业海外扩张?

用友BIP

人力资源 数智人力

中国农发行的全面预算管理新举措

用友BIP

全面预算

一文读懂火山引擎A/B测试的实验类型(2)——可视化实验

字节跳动数据平台

A/B 测试

软件测试 | 性能测试误区(二)

测吧(北京)科技有限公司

测试

JMeter笔记12 | JMeter集合点

测试 单元测试 Jmeter 性能测试 接口测试

70+页实战经验分享,《研发效能红宝书》重磅发布 | 附下载

思码逸研发效能

研发效能

软件测试 | 性能测试的误区(一)

测吧(北京)科技有限公司

测试

JMeter笔记11 | JMeter事务

测试 Jmeter 性能测试 自动化测试 接口测试

2023-06-19:讲一讲Redis分布式锁的实现?

福大大架构师每日一题

redis 福大大架构师每日一题

Flink 流批一体在 Shopee 的大规模实践

Apache Flink

大数据 flink 实时计算

基于OpenHarmony开发的玻璃拟态天气应用(1)项目介绍及项目的初始搭建

路北路陈

前端 HarmonyOS OpenHarmony应用开发 6 月 优质更文活动

KaiwuDB 受邀出席大型企业数字化转型峰会暨工赋山东济南峰会并发表演讲

KaiwuDB

KaiwuDB 数字化转型峰会

作为超级自动化的重要先驱,流程挖掘正在成为组织运营标配

王吉伟频道

人工智能 RPA 超自动化 流程挖掘 业务流程

TRUNCATE 语句到底因何而慢?

爱可生开源社区

MySQL 源码 innodb TRUNCATE

四行代码开启流计算之旅

吴英骏

数据库 开源 流计算 云原生 存储

合约交易所系统开发搭建流程

薇電13242772558

系统开发

软件测试—性能测试的专业术语1

测吧(北京)科技有限公司

测试

软件测试 | 性能测试的种类有哪些?

测吧(北京)科技有限公司

测试

4 个月、2 万颗星,1 个恒纪元

Zilliz

非结构化数据 Milvus 大模型时代 向量数据库 zillizcloud

IoTOS v1.0.0 开源,高效 实用 | 免费商用

开源物联卡管理平台-设备管理

IoT 若依 物联网, 开源物联网 国产OS开源社区

霍格沃兹测试开发学社线下班开班啦!无offer返学费哦!

测吧(北京)科技有限公司

测试

社交泛娱乐全球化,看融云出海如何助力玩法创新催生长线黑马?

融云 RongCloud

音视频 融云 泛娱乐 出海 通讯

数字非洲,沐光而行

脑极体

出海

AI “机里机气”的虚构内容,令人愤慨

B Impact

软件测试—性能测试的专业术语2

测吧(北京)科技有限公司

九科信息亮相第三届中国(深圳)天使投资峰会

九科Ninetech

Google Guava中 EventBus 导致线程阻塞

红袖添香

Java 多线程 EventBus

沉浸式下载Niconico视频到手机相册,手残党们快快跟上!

frank

创新涌动于先丨2023 PingCAP 用户峰会等你来!

PingCAP

数据库 TiDB pingCAP 平凯星辰 用户峰会

Apache Doris 1.2.5 版本正式发布

SelectDB

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