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
  • 8370

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

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

操作系统之按序分配

一种防止死锁的方法 本程序中共有三个进程,共0-9十中资源。 int request(res r[],pcb & p) { if(r[p.now].state==true) { cout...
  • dk_zhe
  • dk_zhe
  • 2012年02月07日 14:55
  • 799

AWS Lambda In Action Chapter2

  • 2017年11月13日 03:52
  • 716KB
  • 下载

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

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

AWS Lambda 中文开发者手册

  • 2017年11月10日 10:28
  • 5.07MB
  • 下载

AWS Lambda In Action Chapter1

  • 2017年11月13日 03:50
  • 1.03MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
举报原因:
原因补充:

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