本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 7:完成
由于您需要付费使用 Kinesis 数据流,因此请确保在使用完流后删除流和相应的 Amazon DynamoDB 表。即使您不发送和获取记录,活动流也会产生象征性的费用。这是因为活动流将持续“侦听”传入记录和获取记录的请求,这将耗用资源。
删除流和表
-
关闭您可能仍在运行的任何创建者和使用者。
打开 Kinesis 控制台,网址为:https://console.aws.amazon.com/kinesis
。 -
选择为此应用程序创建的流 (
StockTradeStream
)。 -
选择 Delete Stream (删除流)。
从 https://console.aws.amazon.com/dynamodb/
打开 DynamoDB 控制台。 -
删除
StockTradesProcessor
表。
摘要
近乎实时处理大量数据不需要编写任何功能强大的代码或开发大型基础设施。这就像编写逻辑来处理少量数据(如编写)一样简单。processRecord(Record)
) 但会使用 Kinesis Data Streams 进行缩放以使该方法能处理大量流数据。您无需担心处理的缩放方式,因为 Kinesis Data Streams 将为您完成这一工作。您只需将流记录发送到 Kinesis Data Streams 并编写用于处理收到的每条新记录的逻辑。
以下是针对此应用程序的一些可能的改进。
- 跨所有分片进行聚合
-
当前,通过聚合单个分片中单个工作线程收到的数据记录来获得统计数据。(一个分片不能同时由单个应用程序中的多个工作线程处理。) 当然,当您扩展并具有多个分片时,可能希望跨所有分片聚合。可通过部署管道架构完成此操作。在该架构中,每个工作线程的输出都注入具有单个分片的另一个流,分片由聚合第一个阶段输出的工作线程处理。由于来自第一个阶段的数据是有限的(每分片每分钟一个示例),因此一个分片即可轻松处理它。
- 缩放处理
-
当流进行扩展以包含多个分片(因为多个创建器正在发送数据)时,扩展处理的方式是添加更多工作程序。您可以在 Amazon EC2 实例中运行工作线程并使用 Auto Scaling 组。
- 使用连接器至亚马逊s3/DynamoB/亚马逊redshift /风暴
-
由于流将得到持续处理,因此可将其输出发送到其他目标。Amazon提供连接器
将 Kinesis Data Streams 与其他集成Amazon服务和第三方工具。
后续步骤
-
有关使用 Kinesis Data Streams API 操作的更多信息,请参阅将 Amazon Kinesis Data Streams API 与结合使用来开发创建者Amazon SDK for Java、使用 Amazon SDK for Java 开发具有共享吞吐量的自定义使用者, 和创建和管理流.
-
有关 Kinesis 客户端库的更多信息,请参阅开发 KCL 1.x 使用者.
-
有关如何优化应用程序的更多信息,请参阅 高级主题。