术语说明
- 持久化:RabbitMQ先将消息写到内存队列中,如果开启持久化,再通过后台线程将消息持久化到磁盘。
- 镜像队列:针对Queue的配置,可以将消息同步写到多个节点,主要是为了高可用。
- confirm:RabbitMQ针对0.9.1的一个扩展,复用了消费消息ack的机制,用给发送方消息已经确认收到,但是实现机制上是一个pipeline异步确认的机制,如果开启了持久化,则消息落地到磁盘后才会回复confirm。
- ack:用来确认消费消息成功的包,同一个消费者只有回复ack后,才能消费下一个消息,这样来保证至少消费一次。如果超时未ack或异常回复reject,则重新投递消息给下一个消费者。
- 事务commit:通过类似数据库的事务,提供prepared,commit,rollback机制,保证和多个消息和数据库操作的一致性,可靠性最高,但是性能损耗也最大。
- 内存队列:rabbitMQ会将所有消息存入内存,然后再根据配置和消息队列的状态进行持久化。