.NET Windows服务连接到AWS简单队列服务,导致高带宽使用

k97glaaz  于 2022-12-01  发布在  .NET
关注(0)|答案(2)|浏览(122)

我在一个服务器上编写了一个Windows服务,它每20秒连接到SQS以检查要检索和处理的消息。我注意到该服务每小时使用大约30 MB的带宽,即使在没有消息要接收的情况下也是如此。这就好像带宽只是用于连接到SQS队列以检查近似的MessagesVisible计数的操作。在我看来这似乎太多了。仅仅检查队列就使用了如此多的带宽/数据。有没有关于C#和与SQS交互的一般建议,我应该遵循,可以帮助减少带宽。我可以对发送回的消息进行优化,但需要经常检查,所以我想知道实际上使用的数据是什么(它总是下载,而不是上传-因此数据进入运行服务的服务器,它唯一连接的是SQS队列)。

f5emj3cl

f5emj3cl1#

您是否尝试过或想过编写一个AWS Lambda函数,该函数只能在sqs队列有消息时触发,您不必在有消息时立即检查队列中是否有消息Lambda函数即可触发,您可以将使用服务执行的进程放到Lambda函数中,通过这种方式,您的带宽将仅在使用Lambda函数执行进程时使用

oknwwptz

oknwwptz2#

对于任何感兴趣的人来说,发生这种情况的解决方案-或原因-实际上归结为ListQueues命令,服务使用该命令来了解它与AWS OK有连接。由于该帐户中有数百个队列,并且命令缺乏特定性,每个连接检查都要作为列表的一部分在所有600多个队列中进行拖网检查,结果消耗了存储器和带宽。

相关问题