RabbitMq
一.简述RabbitMQ架构设计
二.RabbitMQ如何确保消息发送 ? 消息接收?
1.导致生产者消息丢失有哪些原因?
①生产者发送的消息没有到达交换机
生产者发送到交换机消息确认 -> publish-comfirm
成功:ack
失败:nack
②交换机没有将消息转发到消息队列
交换机转发消息队列的消息确认 -> publish-return
成功:ack
失败:nack
③队列中的消息未被消费MQ宕机了
MQ中的消息默认存放在内存中,MQ宕机重启,丢失
消息持久化可以解决
三.消费者消息确认机制
在消费者的application.yml文件中配置;
none:
消费者从MQ中获取消息,无论是否出现异常,rabbitmq都会将消息从消息队列中删除
manual
通过手动编码方式,告诉rabbitmq消息已经进行了消费,rabbitmq会自动将消息删除
auto(默认)
根据消费者是否有抛出异常,自动告诉rabbitmq,消费者是否成功消费了消息;