一、什么是RabbitMQ?
是一个开源的遵循AMQP协议实现的基于Erlang语言编写的,支持多种客户端(语言)。
用于分布式系统中存储消息、转发消息,具有高可用,高可扩行,易用性等特点。
二、RabbitMQ安装
RabbitMQ是采用Erlang语言开发的,所以系统环境必须配置Erlang环境
首先安装Erlang
下载链接:https://www.erlang.org/downloads
再安装RabbitMQ-Server
下载连接:https://www.rabbitmq.com/download.html
RabbitMQ和Erlang版本对比链接:https://www.rabbitmq.com/which-erlang.html
安装完成
启动RabbitMQ服务,设置用户分配操作权限。
本机默认访问:127.0.0.1:15672 (账号密码为:guest)
Docker安装---虚拟化容器技术:把所有的依赖环境一起安装
三、RabbitMQ的角色分类
1.none
-不能访问management plugin
2.management:查看自己相关节点信息
-列出自己可以通过AMQP登入的虚拟机
-查看自己的虚拟机节点virtual hosts的queues,exchanges和bindings信息
-查看和关闭自己的channels和connections
-查看有关自己的虚拟机节点virtual hosts的统计信息,包括其他用户在这个节点的信息
3.Policymaker
-包含management所有权限
-查看和创建和删除自己的virtual hosts所属的policies和parameters信息
4.Monitoring
-包含management所有权限
-罗列出所有的virtual hosts,包括不能登录的virtual hosts
-查看其他用户的connnections和channels信息
-查看节点级别的数据如clustering和memory使用情况
-查看所有的virtual hosts的全局统计信息
5.Administrator
-最高权限
-可以创建和删除virtual hosts
-可以查看、创建和删除users
-查看创建permissions
-关闭所有用户的connections
四、RabbitMQ核心组合
![]()
Server:也是Broker,接受客户端连接,实现AMPQ实体服务,安装rabbitmq-server
Connnection:连接,应用程序与Broker的网络连接TCP/IP三次握手和四次挥手,短链接,耗时
Channel:网络信道,所有操作都在Channel中,Channel是进行消息的读写的通道,每个通道代表一个会话任务
Message:消息,服务与应用程序之间的传递的数据,由Properties和body组成
Properties:对消息进行修饰,如消息的优先级,延迟等高级特性
body:消息体的内容
Vitual Host:虚拟地址,用于逻辑隔离,最上层的消息路由,一个虚拟主机里可有多个exchange和Queue,相当于一个数据库
Bindings:Exchange和Queue之间的虚拟连接,可以保护多个routingkey
Routing key:路由规则,相当于一个传递条件
Queue:队列,Message Queue消息队列,保存信息并转发给消费者
五、RabbitMQ支持6种消息的模式
1.简单模式Simple:一个生产者对应一个消费者
2.工作模式Work:特点分发机制
3.发布订阅模式fanout:特点广播机制
4.路由模式direct:特点routing-key的匹配模式
5.主题模式topic:特点模糊的routing-key的匹配模式
6.参数模式headers:特点参数匹配模式
六、RabbitMQ使用场景(解耦、削峰、异步)