隔叶黄莺 Yanbin's Blog - 软件编程实践
open-menu closeme
Home
Archives
Links icon
LinkedIn X
留言
关于
github twitter linkedin rss
  • AWS Lambda 按序处理同一个 Kinesis Shard 中的消息

    calendar May 19, 2017 · 3 min read · lambda Kinesis  ·
    Share on: twitter facebook linkedin copy
    AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
    当 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 参数是一个常量 Read More

Yanbin Qiu

长年奋斗在软件编程第一线的从业人员,以写日志的形式帮助自己记忆与深入探索,文章若对大家有所帮助,实属敝人之荣幸。
Read More

Featured Posts

  • Rust 调用 C/Rust 生成的动态库
  • AWS 上 Java Lambda 应用记要
  • Apache 配置 SSL(HTTPS) 并整合 Tomcat
  • My First Post
  • Markdown Syntax Guide

Recent Posts

  • 学习 Rust 的工作空间, 包, Crate 和模块管理
  • 《100 Java Mistakes and How to Avoid Them》笔记 3
  • 《100 Java Mistakes and How to Avoid Them》笔记 2
  • 《100 Java Mistakes and How to Avoid Them》笔记 1
  • AWS Lambda 中使用 Python 并发编程
  • AWS Lambda 重试与死信队列(DLQ)
  • AWS Lambda 按序处理同一个 Kinesis Shard 中的消息
  • AWS Java Lambda 与环境变量

Categories

JAVA/JEE 11 AWS 6 CLOJURE 3 JVM 3 READINGNOTES 3 MID-WARE 2 RUST 2 SYNTAX 2 C++/VB 1 LINUX/UNIX 1 PYTHON 1 TECHNOLOGY 1 THEMES 1 WEB/JS 1

Series

THEMES GUIDE 2

Tags

JAVA 7 LAMBDA 5 ANT 4 CLOJURE 3 GC 3 JVM 3 HTTPS 2 JAVABEAN 2 MARKDOWN 2 RUST 2 TOMCAT 2 ANGULARJS 1 APACHE 1 AWS 1
All Tags
ANGULARJS1 ANT4 APACHE1 AWS1 CLOJURE3 COMPILE1 CSS1 DLQ1 EMOJI1 FEATURED1 GC3 HTML1 HTTPS2 HUGO1 INDEX1 JAVA7 JAVABEAN2 JAVASCRIPT1 JUNIT1 JVM3 KINESIS1 LAMBDA5 MARKDOWN2 NOTES1 PRIVACY1 PROCESS1 REPORT1 RUST2 SCP1 SHARED LIBRARY1 SHORTCODES1 SSH1 TAG_NAME11 TAG_NAME21 TEXT1 THEMES1 TOMCAT2 WEBSPHERE1 云服务1 自动化1
[A~Z][0~9]
Yanbin 隔叶黄莺

Copyright 2010-  YANBIN 隔叶黄莺. All Rights Reserved

to-top