我们正在考虑将Amazon Web服务用于我们的项目。其中上游流将消息推送到kinesis中,然后这些消息将被送入lambda,这些消息在处理之前将按顺序排列。根据我的理解,AWS lambdas将根据消息量水平扩展。我们每秒有400个消息,这意味着AWS lambda将响应消息量,并将在单独的容器上实例化新进程以利用并行性,并且为了实现并行性,必须妥协排序。因此,如果订购了10条消息,则命中lambda函数,一个函数比另一条函数花费更多时间,AWS将在某个容器中配置一个新函数来提供请求。
在所有这些过程之后,最终输出是否正常? 任何帮助表示赞赏。 感谢。
答案 0 :(得分:0)
如果您使用的是Amazon Kinesis,则可以使用Data Transformation在每个传入记录上触发AWS Lambda函数。
这允许在继续通过Firehose之前转换或删除记录。因此,Lambda可以处理记录,同时保持相同的顺序。最终数据可以传送到Amazon S3,Amazon Redshift,Amazon Elasticsearch Service或Splunk。
如果您的应用程序直接使用Amazon Kinesis的记录(而非通过Firehose),那么您的应用程序将按顺序使用记录。