AWS Lambda 按序处理同一个 Kinesis Shard 中的消息

原创 2017年06月05日 03:45:58

当 AWS Lambda 由 Kinesis 消息来触发时,一个 Kinesis Shard 会相应启动一个 Lambda 实例,比如说 Kinesis Stream 有 5 个 Shards, 那同时只会启动 5 个 Lambda 实例。那么把多条消息发送到同一个 Kinesis Shard 中去,这些消息会被如何消费呢?答案是按顺消息,不管这些消息是否被不同的 Lambda 实例处理。本文就是关于怎么去理解 https://aws.amazon.com/lambda/faqs/ 的下面那段话的内容:

Q: How does AWS Lambda process data from Amazon Kinesis streams and Amazon DynamoDB Streams?
AWS Lambda 如何处理来自于 Amazon Kinesis 和 DynamoDB 的数据

The Amazon Kinesis and DynamoDB Streams records sent to your AWS Lambda function are strictly serialized, per shard. This means that if you put two records in the same shard, Lambda guarantees that your Lambda function will be successfully invoked with the first record before it is invoked with the second record. If the invocation for one record times out, is throttled, or encounters any other error, Lambda will retry until it succeeds (or the record reaches its 24-hour expiration) before moving on to the next record. The ordering of records across different shards is not guaranteed, and processing of each shard happens in parallel.

从 Kinesis 和 DynamoDB 单个 Shard 上的记录会被 Lambda 严格的按序处理。这意味着如果你送两条记录到相同的 Shard, Lambda 将会保证第一条记录成功处理后才会处理第二条记录。假如处理第一条记录时超时,或超过资源使用上限,或碰到任何错误, Lambda 将会不断重试直到成功(或记录在 24 小时后过期), 而后才会去处理下一条记录。跨 Shard 的记录不保证到达顺序,且是并行处理多个 Shard 来的记录。

可以做几个试验,下面的代码可以保证消息总是被发送到同一个 Kinesis Shard,因为 PartitionKey 参数是一个常量 阅读全文 >>

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kypfos/article/details/72863634

AWS 在线公开课(大数据及分析):Amazon Kinesis和Spark流式处理

1.Amazon Kinesis快速介绍 2.KCL工作原理 3.Spark Streaming 如何获取 Kinesis 流式数据 4.Spark Streaming数据处理过程
  • 2017年09月01日 13:17

AWS Lambda服务初体验

前段时间看到serverless架构,FaaS这些概念,觉的很新奇。 说不定又是什么未来新趋势。 很想去一探究竟。 苦于前段时间工作很忙,没时间弄。 这周刚好空下来, 赶紧试用了一把。 并记录之。 入...
  • hackstoic
  • hackstoic
  • 2016-08-21 21:21:43
  • 3941

AWS Lambda 常见问题

一般性问题 问:什么是 AWS Lambda?通过 AWS Lambda,无需配置或管理服务器即可运行代码。您只需按消耗的计算时间付费 – 代码未运行时不产生费用。借助 Lambda,您几乎可以为任何...
  • m0_37204491
  • m0_37204491
  • 2017-06-01 11:12:31
  • 1676

AWS Lambda 入门到放弃

Request 1.进来的reuqest转入/hello/. 2.Django通过在ROOT_URLCONF配置来决定根URLconf. 3.Django在URLconf中的所有URL模式中,查...
  • afxcontrolbars
  • afxcontrolbars
  • 2017-04-02 20:03:44
  • 3999

AWS 上 Java Lambda 应用记要

AWS 的 Lambda 给了那些不想自己管理 EC2 服务器和配置负载人员很大的便利,所以 Lambda 被描述为 Serverless。真正的只关注业务就行,怎么调度,同时有多少个实例运行交给亚马...
  • kypfos
  • kypfos
  • 2017-04-14 23:43:15
  • 1396

通过 AWS 的 Lambda 和 API Gateway 走向 Serverless

导读 Lightbot近来,在计算领域出现了很多关于 serverless 的讨论。serverless 是一个概念,它允许你提供代码或可执行程序给某个服务,由服务来为你执行它们,而你无需自己管理服...
  • Jack__CJ
  • Jack__CJ
  • 2016-11-11 09:38:48
  • 2183

AWS - 使用AWS创建HTTP接口 (Api Gateway + Lambda + Dynamodb)

概述随着移动设备的激增以及物联网 (IoT) 的崛起,通过 API 让应用程序访问后端系统和数据变得越来越常见。 通过 Amazon API Gateway,您可以根据在 AWS Lambda ...
  • u012724947
  • u012724947
  • 2016-10-23 01:43:07
  • 4557

AWS Lambda 按序处理同一个 Kinesis Shard 中的消息

当 AWS Lambda 由 Kinesis 消息来触发时,一个 Kinesis Shard 会相应启动一个 Lambda 实例,比如说 Kinesis Stream 有 5 个 Shards, 那同...
  • kypfos
  • kypfos
  • 2017-06-05 03:45:58
  • 841

AWS Lambda使用

亚马逊AWS Lambda文档: https://docs.aws.amazon.com/zh_cn/lambda/latest/dg/welcome.htmlAWS Lambda是什么AWS La...
  • m0_37263637
  • m0_37263637
  • 2018-02-05 19:18:52
  • 196

试用AWS的Lambda和API Gateway

使用Lambda和API gateway搭建一个HTTP API,返回文本信息
  • aws0to1
  • aws0to1
  • 2015-07-21 18:44:22
  • 3331
收藏助手
不良信息举报
您举报文章:AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
举报原因:
原因补充:

(最多只允许输入30个字)