Skip to content
返回云服务

AWS Kinesis 流

实时流 — Data Streams(分片)、Firehose(S3 投递)、Analytics(流上 SQL)。

AWS高级

为什么

Kinesis 摄取百万事件/秒 — 日志、点击、IoT。Firehose 投递到 S3/Redshift 带批处理。Analytics 流上跑 SQL。不同于 SQS,数据保留可重放。

何时使用

实时分析、日志摄取、IoT 和点击流时用。避免简单异步工作(用 SQS)或批处理(用 S3 + Lambda)。

如何做

1. 流 — aws kinesis create-stream --shard-count 5 2. 放入 — aws kinesis put-record --stream-name my --data <base64> --partition-key user123 3. 消费 — KCL 或 Lambda 触发、顺序处理分片 4. 保留 — 默认 24 时、最多 365 天、重放旧数据 5. Firehose — 自动投递到 S3/Redshift/OpenSearch、批处理 + 转换 Lambda 6. Analytics — 流上 SQL、滚动窗口、聚合 7. 分片 — 分区键 → 哈希 → 分片、加分片伸缩 8. 增强扇出 — 每消费者 2MB/秒、无竞争

示例

# 创建流 + Firehose 到 S3 aws kinesis create-stream --stream-name events --shard-count 5 aws firehose create-delivery-stream \ --delivery-stream-name events-to-s3 \ --delivery-stream-type KinesisStreamAsSource \ --kinesis-stream-source-configuration KinesisStreamARN=arn:aws:kinesis:... \ --s3-destination-configuration RoleARN=...,BucketARN=...,PrefixingFormat=events/ // Lambda 消费者 export const handler = async (event) => { for (const record of event.Records) { const data = Buffer.from(record.kinesis.data, "base64").toString(); await processEvent(JSON.parse(data)); } };

常见问题

  • ⚠ProvisionedThroughputExceeded — 加分片或用增强扇出
  • ⚠重放需保留 — 默认 24 时、需重处理时增加
  • ⚠热分片 — 一个分区键主导、用更好分区键分布

最佳实践

  • ✓S3 投递用 Firehose — 自动批处理、转换、无消费代码
  • ✓多消费者用增强扇出 — 各 2MB/秒、无共享容量
  • ✓明智选分区键 — 均匀分布、避免热分片

常见问题解答

什么是AWS Kinesis 流?它解决什么问题?

实时流 — Data Streams(分片)、Firehose(S3 投递)、Analytics(流上 SQL)。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手AWS Kinesis 流?

两步即可跑通:① 流 — aws kinesis create-stream --shard-count 5;② 放入 — aws kinesis put-record --stream-name my --data <base64> --partition-key user123。建议先用免费套餐验证流程,再接入生产环境。

AWS Kinesis 流 最容易踩的坑是什么?

最高频的问题是:ProvisionedThroughputExceeded — 加分片或用增强扇出。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

AWS Kinesis 流 的最佳实践有哪些?

AWS Kinesis 流 的最佳实践包括:S3 投递用 Firehose — 自动批处理、转换、无消费代码;多消费者用增强扇出 — 各 2MB/秒、无共享容量;明智选分区键 — 均匀分布、避免热分片。其中首条「S3 投递用 Firehose — 自动批处理、转换、无消费代码」应作为团队默认规范写入 IaC 模板。

AWS Kinesis 流 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS Kinesis 流 多数提供免费套餐,先在免费额度内验证再放量。