rabbitmq学习

一、基础知识

  RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、Redhat、iMatix 等联合制定了 AMQP 的公开标准。

 

  

   2.死信队列

  当一条消息在队列中出现以下三种情况的时候,该消息就会变成一条死信。

  • 消息被拒绝(basic.reject / basic.nack),并且requeue = false
  • 消息TTL过期
  • 队列达到最大长度

       当消息在一个队列中变成一个死信之后,如果配置了死信队列,它将被重新publish到死信交换机,死信交换机将死信投递到一个队列上,这个队列就是死信队列。

  实践1  实践2  

二、优缺点

  优点:解耦、异步、削峰

  缺点:

    1.如何保证消息不被重复消费

    2.如何保证消息的可靠性  实践   理论

    3.消息有序性

三、常见面试题

  面试题1

  面试题2:死信队列

原文地址:https://www.cnblogs.com/helq/p/14497243.html