我需要创建一个队列进行处理。队列本身的容量相对较低。每小时可能会有1000封信。每个任务的执行可能需要大约一分钟的时间,并且几乎在项目添加到队列后立即进行处理。
我有没有理由想要实现RabbitMQ而不是像Amazon SQS这样的现成的东西?为什么应用程序需要自己的队列系统而不是像SQS这样的东西?
首先,Amazon SQS是一个伪队列,这意味着每条消息(如果到达队列)的传递都是保证的,但不是以FIFO的方式传递,这通常发生在队列中。
如果消息的顺序对您很重要,并且您希望队列以FIFO方式工作,那么Amazon SQS文档将在应用程序逻辑中处理这一点,因为来自Amazon SQS的消息将不按顺序到达您手中。
与此相比,据我所知,您可以在RabbitMQ中实现工作者队列。如果这使您不得不在应用程序级别实现队列消息排序,那么这将是一个更可取的选项。
>
队列消息序列如上所述。
您可以使用RabbitMQ设置自己的服务器,但在Amazon SQS的情况下则不行,因此这里涉及到成本。
设置您自己的服务器将需要良好的知识的主题,以便您没有留下任何角落不触及。Amazon SQS不是这种情况,因为它的入门非常快。