1、什么是RabbitMQ?为什么使用RabbitMQ,RabbitMQ好处?
RabbitMQ是一款开源的,Erlang编写的,基于AMQP协议的,消息中间件;
可以用它来:解耦、异步、削峰。
好处就是:解耦、异步、削峰。
2、如何保证RabbitMQ不被重复消费?
先说为什么会重复消费:正常情况下,消费者在消费消息的时候,消费完毕后,会发送一个确认消息给消息队列,消息队列就知道该消息被消费了,就会将该消息从消息队列中删除;
但是因为网络传输等等故障,确认信息没有传送到消息队列,导致消息队列不知道自己已经消费过该消息了,再次将消息分发给其他的消费者。
3、如何保证RabbitMQ消息的顺序性?
单线程消费保证消息的顺序性;对消息进行编号,消费者处理消息是根据编号处理消息;
4.如何保证消息不丢失
1.ack确认应答机制(消费者):当生产者消费后,消费者可以实现手动/自动ack应答,我已消费了这条消息
2.comfirm确认机制(生产者):当生产者确定拿到消息,并且我这边明确的收到了你给我的消息
3.持久化机制(交换机):
4.消息持久化:参数改为true即可