.NET Windows Service 连接到 AWS Simple Queue Service,从而产生高带宽使用



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

您是否尝试或考虑过编写一个只能在 sqs 队列有消息时触发的 AWS Lambda 函数,您不必在有消息后立即检查队列中的消息 Lambda 函数可以被触发,您可以将对服务执行的进程放到 Lambda 函数中,这样您的带宽才会在发生λ函数

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