热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

来自SQS的AWSLambda轮询:实时消息计数

如何解决《来自SQS的AWSLambda轮询:实时消息计数》经验,为你挑选了1个好方法。

我在SQS队列中有20K消息。我也有一个lambda将处理SQS消息,并将数据放入ElasticSearch服务器。

我已将SQS配置为lambda的触发器,并将Lambda的SQS批处理大小限制为10。我还限制了lambda的一个实例只能在给定时间运行。

但是,有时我in-flight messages从AWS控制台看到超过1万。最多可发送10条机上消息吗?

因此,lambda仅能正确处理9K的SQS消息。

下面的屏幕截图显示了我已将lambda限制为在给定时间仅运行1个实例。



1> qkhanhpro..:

我一直在进行一些测试,并同时联系AWS技术支持。

我目前相信的是:

Amazon Simple Queue Service支持5个并发函数调用的初始突发,并且每分钟增加60个并发调用的并发性。文件

1 /进行合并的东西是一个单独的实体。最有可能是lambda函数,它将使SQS长时间处于池中,然后调用我们的lambda函数。

2 / Pool-Lambda根本不考虑我们的任何Receiver-Lambda。不在乎该功能是否以最大容量运行,或者Receiver-Lambda有多少最大并发可用

3 /由于这种结合。这种行为不是我们从Lambda-SQS集成中所期望的。更糟糕的是,如果突然,队列中爆发了数百万条消息。Receiver-Lambda并发永远无法赶上pooling-Lambda发送的消息量,从而导致工作丢失

考试:

创建一个需要30秒才能返回true的Lambda函数;

将该函数的并发设置为50;

将300条消息推送到队列中(可见性超时:10分钟,批消息计数:1,不重新驱动)

结果:

可用消息量逐渐增加

最初,Receiver-Lambda处理的消息很少

半分钟后,可用消息超出了Receiver-Lambda的处理能力

这些消息将被丢弃到死队列中。由于Pool-Lambda无法调用Receiver-Lambda

得到AWS支持人员的确认后,我将立即更新此答案

支持答案。截至2019年第一季度,TL; DR版本

1 /假设是正确的,有一个“投票者”

2 / Poller在其算法中并未考虑保留并发

3 /轮询者的硬限制为1000

2019年第二季度:

以上信息需要更新。支持人员说,轮询器正确考虑了保留的并发性,但应至少为5。SQS-Lambda集成仍在更新中,并且此答案不会。因此,如果您遇到一些奇怪的问题,请咨询AWS


推荐阅读
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 本文介绍了一道经典的状态压缩题目——关灯问题2,并提供了解决该问题的算法思路。通过使用二进制表示灯的状态,并枚举所有可能的状态,可以求解出最少按按钮的次数,从而将所有灯关掉。本文还对状压和位运算进行了解释,并指出了该方法的适用性和局限性。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • 广度优先遍历(BFS)算法的概述、代码实现和应用
    本文介绍了广度优先遍历(BFS)算法的概述、邻接矩阵和邻接表的代码实现,并讨论了BFS在求解最短路径或最短步数问题上的应用。以LeetCode中的934.最短的桥为例,详细阐述了BFS的具体思路和代码实现。最后,推荐了一些相关的BFS算法题目供大家练习。 ... [详细]
author-avatar
汉子r_843
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有