Our startup is currently using RabbitMQ
(with Python/Django
) for messaging queues, now we are planning to move to Amazon SQS
for its high availability & their delayed queue feature.
But I am reading on INTERNET everywhere that SQS is slow performing & also very cost effective, so is it wise decision to move to Amazon SQS or should to stick to RabbitMQ?
And if we its good to stick with RabbitMQ, whats the alternative solution for "delayed queues"?
I haven't had any problems with slow performance on SQS, but then again it maybe that the be the nature of my apps don't count on sub-millisecond response times for items in my queue. For me the work done on the items in the queue contributes more to the lag than the time it takes to use the queue.
For me the distributed, highly available and 'hands-off' nature of SQS suits the bill. Only you can decide whats is more important: a few more milliseconds of performance in a non-redundant system that you need to support yourself, or the 'queue as a service' offerings of AWS. Not knowing you application, I can't say if the perceived extra performance is a necessary trade off for you.
AWS Simple Queue Service is a fully managed, highly available, highly scalable queuing service.
SQS pricing structure is basically a price per API call, details are explained at : http://aws.amazon.com/sqs/pricing/
When you are accessing SQS in sequence from one single thread, you will be limited by latency (when it takes 20ms to make an API call, a single thread will peak at 50 calls per second). But SQS is designed to work in parallel. This article shows how to scale SQS to thousands of messages per second. http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/throughput.html
You can access SQS API from our Python SDK (boto), available at http://aws.amazon.com/sdk-for-python/
来源:https://stackoverflow.com/questions/27315968/moving-from-rabbitmq-to-amazon-sqs