RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的。在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC 的调用等等。
RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 RabbitMQ 主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。
AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ 是一个开源的 AMQP 实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
RabbitMQ官网:https://www.rabbitmq.com/
安装ERLANG
使用wget下载
wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
1、安装可能需要的环境
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
2、执行
rpm -Uvh erlang-solutions-2.0-1.noarch.rpm
3、安装
yum install -y erlang
4、检查安装版本
erl -v
5、可以看到查看到版本号
安装RabbitMQ
安装 socat
yum install -y socat
6、在RabbitMQ官网下载好对应的文件
https://www.rabbitmq.com/download.html
7、下载好后是一个rpm文件
上传到linux后到对应的目录下执行
rpm -Uvh rabbitmq-server-3.8.16-1.el8.noarch.rpm
8、安装
yum install -y rabbitmq-server
9、启动并查看 RabbitMQ
systemctl start rabbitmq-server
systemctl status rabbitmq-server
10、设置开机启动
systemctl enable rabbitmq-server
因为我用的是阿里云服务器就没设置这些
11、安装RabbitMQ界面管理
rabbitmq-plugins enable rabbitmq_management
12、重启服务
systemctl restart rabbitmq-server
13、打开15672端口可以看到管理页面
(如果使用云服务器记得打开端口防火墙还有配置好安全组规则)
firewall-cmd --list-port #查看打开的所有的端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent #添加这个端口
systemctl restart firewalld
因为我这边使用的是云服务器,使用guest默认的用户是不能登录的
新增用户
rabbitmqctl add_user admin admin
1、administrator可以登录控制台、查看所有信息、可以对rabbitmq进行管理
2、monitoring监控者登录控制台,查看所有信息
3、policymaker,策略制定者登录控制台,指定策略
4、managment普通管理员登录控制台
14、设置administrator权限
rabbitmqctl set_user_tags admin administrator
15、添加用户资源权限
rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
16、网页登录测试