当前位置: 首页 > 知识库问答 >
问题:

AWS SQS队列提高性能

孟承嗣
2023-03-14

我试图实现一个AWS SQS队列,以最大限度地减少来自后端服务器的数据库交互,但我遇到了问题。

  • 我有一个消费者进程,它从一个SQS队列中查找消息

为了测试功能,我为一个客户端实现了逻辑。它运行得很好。然而,当我添加了3个客户端时,它不能正常工作。我能够看到SQS队列被500条消息卡住了,后端作业正在正常工作,从队列中读取。

我需要增加后端作业的数量还是增加客户端SQS队列的数量?现在,所有客户端都将消息发送到同一队列。

如何计算所需的后端作业数?此外,是否有任何设置可以使SQS更快地工作?

共有1个答案

穆睿才
2023-03-14

将消息存储在队列中是件好事——事实上,这就是使用队列的目的。

如果您的后端系统无法以生成消息的速度使用消息,那么队列将充当缓冲区来保留消息,直到可以处理它们为止。一个很好的例子是AWS re:Invent演示,其中一个队列显示超过2亿条消息:使用Amazon SQS和Amazon SNS构建弹性、高性能的系统

如果快速处理消息很重要,请缩放您的消费者以匹配消息生成的速度(或更快,以便您可以使用积压)。

您提到您的流程“从SQS队列中提取JSON消息,从队列中删除消息并对其进行处理”。请注意,最佳做法是从队列接收消息,对其进行处理,然后(在完全处理后)将其删除。这样,如果进程失败,消息将在定义的不可见期后自动重新出现在队列上。这使您的应用程序更能适应失败。

 类似资料:
  • 多读者/Tag createTag() deleteTag() listTag() getTagInfo() 死信队列 setQueueRedrivePolicy() removeQueueRedrivePolicy() 从死信队列中接收消息 向死信队列发送消息 多读者/Tag相关 Topic Queue Priority Queue

  • 我正在用docx4j做一些测试。我需要做的是将复杂的Word文档(2-3页的文本、表格、项目符号列表、图像)转换成XHTML。

  • 我在我的应用程序中创建了第二个DataSource。 我用HikariDataSource创建了它,因为它断开了连接,所以出现了问题。 现在它没有断开,但是很慢 我的配置如下: 爪哇: 有人能告诉我如何提高绩效吗。 它们是表的小查询,分页约为25条记录,需要4秒钟。 我观察到,查询一个select的200条记录需要46秒,而查询只需要2秒。 以前,它们是千分之一秒。 非常感谢。

  • 主要内容:9. RabbitMQ 其他知识点,9.1 幂等性,9.2 优先级队列,9.3 惰性队列9. RabbitMQ 其他知识点 9.1 幂等性 9.1.1 概念 用户对于统一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生副作用 举个栗子,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,会进行第二次扣款,返回结果依然成功。用户查询余额发现多扣钱了,流水记录也变成了两条。 在以前的但应用系统中,我们只需要把数据操作放入事务

  • 我有一个cron作业方法,它根据用户的特色故事构建用户的故事提要,跟踪类别并跟踪用户。 最终提要按正确顺序添加到以下数据库表中: 用户提要表: Uid 方法如下,包含注释<代码: 对于30名用户,上述方法需要约35秒才能完成<问:我如何改进代码和性能?

  • 本文向大家介绍react怎么提高列表渲染的性能?相关面试题,主要包含被问及react怎么提高列表渲染的性能?时的应答技巧和注意事项,需要的朋友参考一下 使用webpack 做代码分割。 使用hooks。