我一直在使用 AWS SQS,它有一个很好的功能,当从队列中声明一条消息时,它会锁定一段时间。在此锁定期间,如果成功处理消息,则将消息标记为已完成。如果处理失败(并且没有收到来自消息处理器的响应),则在一段时间后锁定到期并且消息可供另一个处理器获取。
现在我需要在 SQS 之外使用队列(主要是出于延迟原因,但也可能出于成本原因)。我真的在寻找具有相同特征的队列提供程序。MSMQ 对我来说是显而易见的选择,因为它已经安装并且我们在其他地方使用它,但是我找不到任何以相同方式处理失败消息的功能。
MSMQ 是否允许这样做,或者是否有一种简单的方法来复制它?
或者,是否有另一种轻量级的开源消息传递服务可以做到这一点?