RabbitMQ涉及概念
- RabbitMQ(安装略)
- AMQP 协议
- 集群(另外开辟一篇)
- 保障100%的消息高可靠性投递方案
- 启用管控台
RabbitMQ 介绍及AMQP 协议
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。用来通过普通协议在完全不同的应用之间共享数据。RabbitMQ服务器是用Erlang语言编写的,并且RabbitMQ是基于AMQP协议的。
RabbitMQ 简介
- 滴滴、头条等互联网大厂广泛使用。
- RabbitMQ底层是采用Erlang。Erlang语言是在交换机领域应用比较广,与socket一样底的延迟。
- 开源、性能优秀、稳定性保障
- 提供多种语言支持php、java等
- 与SpringAMQP完美的整合、API丰富
- 提供丰富的集群模式,表达式配置、HA模式,映像队列模式
- 保证数据不丢失的前提做到高可靠性、可用性。
- AMQP全称:Advanced Message Queuing Protocol (高级消息队列协议)
AMQP 协议模型
![](https://img.haomeiwen.com/i5438896/d02049944fd9b84b.png)
- publisher:消息生产者----生产者不需要关心消息投放到哪个队列
- Consumer:消息消费者---消费者只需监听队列
- Virtual host:虚拟主机--好像是区分在同一台服务器安装多个实例(集群)
- Exchange:交换机---Exchange与Message Queue之间有一个绑定的关系,通过路由key(routing-key)进行关联
- Message Queue:消息队列
RabbitMQ安装与使用
RabbitMQ官网
下载RabbitMQ必须的安装包
进行安装,修改相关配置文件
#官网地址
https://www.rabbitmq.com/
cd /usr/local
#配置 /etc/hosts、及/etc/hostname (Linux防火墙一定要关闭,否则测试时可能不通)
vim /etc/hostname
vim /etc/host
#下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server_3.7.15-1_all.deb
#安装erlang
rpm -ivh erlang-18.3-1.e17.centos.x86_86.rpm
#安装socat
rpm -ivh socat-1.7.3.2-1.1.e17.x86_64.rpm
#安装 rabbit
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
![](https://img.haomeiwen.com/i5438896/b793436309e8ab86.png)
![](https://img.haomeiwen.com/i5438896/6305a6ee9aa63dae.png)
![](https://img.haomeiwen.com/i5438896/abc00e433dbf825d.png)
hosts配置例子-在搭建集群是,配置后RabbitMQ之间才能互通
![](https://img.haomeiwen.com/i5438896/c826c17e92b9e6a7.png)
需要的安装包
先安装erlang(环境)--》再安装socat(密钥key)-->最后安装rabbitMq
![](https://img.haomeiwen.com/i5438896/e79e4d8fab1e3d36.png)
安装后,启动之前修改配置文件rabbit.app(一个json文件)其中包括
- 模块配置
- tcp断开
- 需要修改密码{loopback_users, ["guest"]}
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
![](https://img.haomeiwen.com/i5438896/d41c4ee9c9013ec1.png)
rabbitmq3个关键文件
![](https://img.haomeiwen.com/i5438896/32b30a043e256d26.png)
- rabbitmqctl:脚本rabbitmq详细服务的控制,比如添加一个节点、组成一个集群、集群中删除某个节点、加队列、加交换机等
- rabbitmq-plugins
- rabbitmq-server
RabbitMQ的插件
#启动插件如--启用管控台
rabbitmq-plugins enable rabbitmq_management
![](https://img.haomeiwen.com/i5438896/cb0b754b032c27de.png)
管控台介绍
127.0.0.1:15672
![](https://img.haomeiwen.com/i5438896/ca82355d3be9e71d.png)
node信息
![](https://img.haomeiwen.com/i5438896/548c70f693ec3c62.png)
- File descriptors
- Socket descriptors
- Erlang processes:Erlang启动线程有多少个
- Memory :内存信息
- Disk space: 磁盘信息
- Info :描述(默认磁盘存储,也可以内存存储)
Paths信息
- Config file :/etc/rabbitmq/rabbitmq.config (not found 表示还没有配置)
- Database directory :/var/lib/rabbitmq/mnesia/rabbit@iZ2ze4ll1c59ldrcm1xdxeZ
Ports and contexts (RabbitMQ已经开启的端口号)
![](https://img.haomeiwen.com/i5438896/cc0a5e43da9835c2.png)
Import / export definitions(RabbitMQ配置信息的导入导出)
![](https://img.haomeiwen.com/i5438896/fca3c87fda100aa8.png)
![](https://img.haomeiwen.com/i5438896/b963cde3fd04256c.png)
管理模块-如添加管理员
![](https://img.haomeiwen.com/i5438896/3620d2ebda78e9c5.png)
网友评论