1.RabbitMQ是什么?
    RabbitMQ是一个基于AMQP协议的高级消息中间件,它主要的技术特点是可用性,安全性,集群,多协议支持,可视化的客户端,活跃的社区。

    2.为什么选择RabbitMQ
    功能强大,支持死信队列,优先级队列,延迟队列,重试队列等多种功能无需二次开发。
    性能相对还算可以,一般单机的QPS在万级左右,可以满足一般的应用场景。
    文档说明非常丰富,社区活跃,上手容易。
    强大的可视化管理工具。
    3.RabbitMQ模型
    image.png
    Broker(消息代理) : 实际上就是消息服务器实体。
    Exchange(交换机) : 用来发送消息的AMQP实体,它指定消息按什么路由规则,路由到哪个队列。
    Queue(消息队列) :每个消息都会被投入到一个或多个队列。
    Binding(绑定) : 它的作用就是把交换机(Exchange)和队列(Queue)按照路由规则绑定起来。
    Routing Key(路由关键字) :路交换机(Exchange)根据这个关键字进行消息投递。
    vhost(虚拟主机) : 虚拟主机,一个消息代理(Broker)里可以开设多个虚拟主机(vhost),用作不同用户的权限分离。
    Connection(连接) :AMQP连接通常是长连接,Producer和Consumer都是通过TCP连接到RabbitMQ Server的。
    Channel(通道) : AMQP通过通道(channels)来处理多连接,可以把通道理解成共享一个TCP连接的多个轻量化连接。