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

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

相关文章推荐

网易视频云分享:消息队列设计中如何保证同一用户的消息按序处理

消息队列是应用开发的常用工具, 也是系统解耦的必备利器。保证同一用户的消息按照顺序处理是应用的常见需求,  譬如在微博应用中,发表微博、删除微博这两个操作必须按序处理,乱序势必造成业务逻辑错误。   ...

多线程按序执行

多线程按序执行笔试遇到的题目,涉及到多线程,题目大意是有三个线程,分别名为ABC,要求这三线程按序执行十遍打印,打印结果如:ABCABCABC…ABC。

Java多线程-线程按序交替

线程按序交替编写一个程序,开启三个线程,这三个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出的结果必须按顺序显示,如:ABCABCABC……依次递归。使用Conditio...

操作系统之按序分配

一种防止死锁的方法 本程序中共有三个进程,共0-9十中资源。 int request(res r[],pcb & p) { if(r[p.now].state==true) { cout<...

非递归,按序输出集合的全排列

题目描述 非递归,按序输出集合全排列,是在笔试面试中经常考的问题。递归输出集合的全排列相对来说还是比较简单的,而非递归实现这个问题需要一些小技巧。 全排列是将集合中的元素(可以为数字,...

AWS Lambda服务初体验

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

通过 AWS 的 Lambda 和 API Gateway 走向 Serverless

Lightbot近来,在计算领域出现了很多关于 serverless 的讨论。serverless 是一个概念,它允许你提供代码或可执行程序给某个服务,由服务来为你执行它们,而你无需自己管理服务器。这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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