情景是这样的:
问题:
失败方法:
问题:
答案 0 :(得分:1)
配置S3存储桶以将事件推送到SQS队列(请参阅here),让您的mule服务器从该队列中提取事件,而不是轮询S3。这样,每个事件将仅由一名工人拉动。
它的工作原理如下:在每个worker中,您需要重复调用ReceiveMessage()
以获取队列中的下一条消息。一旦工作人员收到消息,该消息在一定时间内对其他工作人员不可见(您可以通过setVisibilityTimeout()
控制该消息)。在工作程序处理消息后,它应该调用deleteMessage()
将其从队列中完全删除。如果工作人员失败,则不会调用deleteMessage()
,因此在可见性超时期限之后,另一名工作人员将接收该消息。
换句话说,SQS中的队列不处理分发工作。工作人员在准备就绪时从队列中提取消息,这就是创建负载平衡的原因。