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 参数是一个常量 阅读全文 >>

版权声明:本文为博主原创文章,未经博主允许不得转载。

【总结】Amazon Kinesis实时数据分析最佳实践分享

关于大数据的实时流处理,AWS提供了传统方案和完全host方案 传统方案是EC2上面部署flume (采集)、kafka(数据转存)、storam(流处理)完全host方案是Kinesis。使用Ki...
  • QXK2001
  • QXK2001
  • 2016年06月07日 16:16
  • 8867

Amazon Kinesis简介

Amazon Kinesis就是流式计算。 Architecture架构: producer_a                                                ...
  • hongchangfirst
  • hongchangfirst
  • 2017年03月01日 17:22
  • 753

AWS Lambda 常见问题

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

AWS Lambda服务初体验

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

AWS 上 Java Lambda 应用记要

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

AWS Lambda 入门到放弃

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

通过 AWS 的 Lambda 和 API Gateway 走向 Serverless

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

代码世界中的Lambda

Lambda表达式基于数学中的λ演算得名,可以看作是匿名函数,可以代替表达式,函数,闭包等,也支持类型推论,可以远离匿名内部类。Lambda的目的是让程序员能够对程序行为进行抽象,把代码行为看作数据。...
  • wireless_com
  • wireless_com
  • 2016年09月23日 20:28
  • 2892

试用AWS的Lambda和API Gateway

使用Lambda和API gateway搭建一个HTTP API,返回文本信息
  • aws0to1
  • aws0to1
  • 2015年07月21日 18:44
  • 3039

用 Node.js 和 AWS Lambda 创建无服务器的微服务

在本文中,我们将使用 Lambda—Amazon Web Services(AWS)套件中的一个新工具—来启动并运行一个微服务。 我们将使用 Lambda 创建一个 HTTP GET 终端,该终端使用...
  • ourpush
  • ourpush
  • 2016年12月10日 14:42
  • 793
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
举报原因:
原因补充:

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