You are getting a lot of empty receive requests when using Amazon SQS. This is making a lot of unnecessary network
load on your instances. What can you do to reduce this load?
A.
Subscribe your queue to an SNS topic instead.
B.
Use as long of a poll as possible, instead of short polls.
C.
Alter your visibility timeout to be shorter.
D.
Use sqsd
on your EC2 instances.
Explanation:
One benefit of long polling with Amazon SQS is the reduction of the number of empty responses, when there are no
messages available to return, in reply to a ReceiveMessage request sent to an Amazon SQS queue. Long polling allows
the Amazon SQS service to wait until a message is available in the queue before sending a response.
http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html
B
Long pooling waits for the message until the specified time out occurs, so B is the best option here.