容错机制
容错机制需要保证出错后信息还会被重新插入队列,在redis
中需要手动try
catch
处理。在其他消息队列中都有提供容错机制,比如消息取出变为挂起状态,一定时间内没有删除就会重新插入队列。
消息延迟
消息队列中有延迟的概念,取出后判断是否在延迟时间内,如果在则重新插入队列,达到延迟效果。
推送
redis
的推送方式注重快速而不保证推送成功
部分MQ
可以做到虽然有延迟,但是保证推送成功。
Redis:没有相应的机制保证消息的消费,当消费者消费失败的时候,消息体丢失,需要手动处理
RabbitMQ:具有消息消费确认,即使消费者消费失败,也会自动使消息体返回原队列,同时可全程持久化,保证消息体被正确消费