最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

发布了 1835 篇内容, 共 91.9 次阅读, 收获喜欢 73 次。

关注

评论

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

OceanBase 4.1 发版 | 一个面向开发者的里程碑版本

OceanBase 数据库

数据库 oceanbase

如何把Ai绘画工具放到我们的App中

Onegun

AI AIGC

什么是接口定义? 接口定义的概念和用途详解

Apifox

前端 接口 后端 API 接口定义

横扫一线大厂面试的高并发笔记到底有多硬核?

小小怪下士

Java 程序员 后端 高并发 java面试

投放视频广告时,如何快速与第三方播放器兼容?

HMS Core

HMS Core

阿里巴巴内部Spring Cloud Alibaba 全彩 PDF 版手册开源

采菊东篱下

Java 微服务

CUDA编程基础与Triton模型部署实践

阿里技术

cuda 模型部署

Java 源码重读系列之 HashMap

U2647

源码 hash map #java

Redis分布式锁一定注意两个坑

做梦都在改BUG

Java redis 分布式锁

cad看图:MiniCAD 中文版

真大的脸盆

Mac Mac 软件 cad cad看图

ChatGPT背后的AI背景、技术门道和商业应用(万字长文,建议收藏)

京东科技开发者

人工智能 AI ChatGPT 人工智能ChatGPT 吗? 企业号 4 月 PK 榜

SpringCloud 网关实现线程池异步批量保存请求日志

Java你猿哥

spring Spring Cloud Java工程师 日志表

Github发布6天,Star55K+,这套笔记足够你拿下90%的Java面试

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

一文解读基于PaddleSeg的钢筋长度超限监控方案

飞桨PaddlePaddle

人工智能 图像识别 飞桨

分享:作业帮在多云环境下的高可用双活架构优化实践

OceanBase 数据库

数据库 oceanbase

聊聊简单又不简单的图上多跳过滤查询

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

使用Python实现一个简单的垃圾邮件分类器

海拥(haiyong.site)

三周年连更

百度工程师的软件质量与测试随笔

百度Geek说

测试 软件质量 测试技术 智能测试 企业号 4 月 PK 榜

Hybrid App 选用什么前端框架更好

Onegun

flutter React Native Hybrid

从GitHub火到了头条!共计1658页的《java岗面试核心》,拿走不谢

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

安全测试前置实践2-安全渗透测试

京东科技开发者

测试 安全测试 功能测试 网络安全渗透测试 企业号 4 月 PK 榜

数据解析NFT Q1市场表现:NFT生态正向Polygon聚拢,蓝筹项目"保值"难

NFT Research

数据分析 NFT

AutoCAD安装无响应,需要在macOS上完全卸载Autodesk产品!

魔仙苹果mac堡

cad2024激活版 AutoCAD安装无响应 AutoCAD M1

在桌面养只捣蛋鹅 Desktop Goose让你的mac桌面更有趣!

魔仙苹果mac堡

抖音桌面宠物鹅 桌面宠物鸭 Mac版 Desktop Goose怎么关闭 Desktop Goose下载

Spring源码探索-核心原理下(AOP、MVC)

Java你猿哥

spring aop Spring MVC

4月22日,云数据库技术沙龙【杭州站】

NineData

MySQL 数据库 开发者 Clickhouse 沙龙预告

未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段

OpenHarmony开发者

OpenHarmony

分享:CUDB for OceanBase分布式数据库产品规模应用

OceanBase 数据库

数据库 oceanbase

【实践篇】基于CAS的单点登录实践之路

京东科技开发者

CAS SSO 单点登录 企业号 4 月 PK 榜

解密HTTP协议:探索其组成部分与工作原理

做梦都在改BUG

Java 计算机网络 网络协议 HTTP

技术不行还说Java卷!靠468页SpringBoot企业级项目实战成功逆袭

做梦都在改BUG

Java 微服务 Spring Boot 框架

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