0


05-RabbitMQ 面试题

1.RabbitMQ-如何保证消息不丢失?

消息中间件的好处

  1. 提供了系统之间的异步调用,让服务与服务之间解耦
  2. 削峰、填谷

场景:

  1. 异步发送(验证码、短信、邮件…)
  2. MySQL和Redis , ES之间的数据同步
  3. 分布式事务
  4. 削峰填谷

消息发送者(publisher )把消息发送给交换机(exchange),由交换机路由到队列,最后由消费者(consumer)进行消费消息。

出现消息丢失的四种情况:

  1. 消息未到达交换机
  2. 消息未到达队列
  3. 队列中消息丢失
  4. 消费者未接收到消息

生产者确认机制(解决消息未到达交换机、消息未到达队列问题)

RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结果(ack)给发送者,表示消息是否处理成功

如果消息发送失败,有两种情况:

  1. 消息到达交换机失败(publisher-confirm nack)
  2. 交换机路由到队列失败(publisher-return ack)

消息失败之后如何

标签: rabbitmq

本文转载自: https://blog.csdn.net/u013049194/article/details/136324336
版权归原作者 Aaron Fang 所有, 如有侵权,请联系我们删除。

“05-RabbitMQ 面试题”的评论:

还没有评论