一、rabbitmq的下载安装
1、下载Erlang
2、配置环境变量
3、下载rebbitmq
4、进入sbin目录,然后运行命令:rabbitmq-plugins enable rabbitmq_management,执行rabbitmqctl status,
5、然后双击运行rabbitmq-server.bat,等几秒钟,在浏览器访问http://localhost:15672/,输入默认账号:guest,密码:guest,登陆成功

二、消息队列概述
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。

三、为什么需要消息队列:
需要一个工具(消息队列)来解耦服务之间的关系、控制资源合理合时的使用以及缓冲流量洪峰等

四、特点:
1、可靠性(使用一些机制来保证可靠性,如:持久化、传输确认及发布确认等)
2、灵活的路由{
a、在消息进入队列之前,通过交换器来路由消息,
b、典型的路由功能,它提供了一些内置的交换器实现
c、复杂的路由功能,可以将多个交换器绑定在一起(或通过插件机制实现)}
3、扩展性(多个rabbitmq节点可以组成一个集群)
4、高可用性(队列在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队列仍然可用)
5、多种协议(支持AMQP、STOMP、MQTT等多种消息、中间件协议)
6、几乎支持所有常用语言、提供了许多插件,以实现从多方面进行扩展(也可编写自己的插件)、提供了监控和管理消息、集群中的节点等的一个用户页面。

五、AMQP是什么?(是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开发标准,为面向消息的中间件设计)。
AMQP模型的几大组件?
交换器:消息代理服务器中用于把消息路由到队列的组件
队列:用来存储消息的数据结构,位于硬盘或内存中
绑定:一套规则,告知交换器消息应该将消息投递给那个队列

六、rabbitmq四种交换器类型:
1、Direct exchange(默认模式)
2、Fanout exchange(广播模式)
3、Topic exchange(主题模式)
4、Heasers exchange(性能差,基本不用)

七、如何保证RabbitMQ消息队列的高可用?
三种模式:单机、普通集群、镜像集群模式
普通集群模式:在多台机器上启动多个RabbitMQ实例,每个机器启动一个
镜像集群模式:这种才是所谓的高可用模式,跟普通集群模式不一样的是,创建的queue,无论元数据(配置数据)还是queue(队列)里的消息都会存在于多个实例上,然后每次写消息的时候,都会自动把消息到多个实例的queue里进行消息同步。