RabbitMQ消息队列服务

时间:2022-11-08 22:05:09

消息队列(Message Queue,MQ):

     是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

RabbitMQ概念:

         属于一个流行的开源消息队列系统。属于AMQP( 高级消息队列协议 ) 标准的一个 实现。是应用层协议的一个开放标准,为面向消息的中间件设计。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布 / 订阅)、可靠性、安全。

 


 

 RabbitMQ安装配置(controller节点)

一、安装并启动RabbitMQ消息队列服务

安装Rabbitmq的服务端: yum -y install rabbitmq-server

关防火墙

设置开机启动: systemctl enable rabbitmq-server

立即启动服务;  systemctl start rabbitmq-server   (若重启失败,查看hosts中controllerIP地址是否对应)

查看服务器状态: systemctl status rabbitmq-server

RabbitMQ消息队列服务

 

 

 

 

二、管理用户与密码

为了保证安全性,不能让用户任意在消息队列中存放或获取消息,需要先进行用户名和密码的认证。给RabbitMQ添加一个用户并设置密码后,用户即可使用消息队列服务。

新建RabbitMQ用户命令 rabbitmqctl add_user <用户名> <密码>
删除... rabbitmqctl delete_user <用户名> 
修改... rabbitmqctl change_password <用户名> <新密码>

添加一个openstack用户,设置新密码为000000

rabbitmqctl add_user openstack RABBIT_password

rabbitmqctl change_password openstack 000000

RabbitMQ消息队列服务

 

三、管理用户权限

rabbitmqctl set_permissions openstack '.*' '.*' '.*

以上命令给‘openstack’这个用户设置了使用队列的权限。命令中的3个‘.*’分别对应配置、写入、读取权限。其中‘.*’表示所有资源。命令执行完成后‘openstack’用户就拥有了对RabbitMQ所有资源的配置、写入、读取权限。

RabbitMQ消息队列服务

 

 设置该用户为管理员:rabbitmqctl set_user_tags openstack administrator

查看用户列表: rabbitmqctl list_users

RabbitMQ消息队列服务

 

 

四、查看监听端口 rabbitmq默认端口5672

每一个服务都是通过特定的一个或者数个端口对外提供服务的

netstat -ntlp | grep 5672

RabbitMQ消息队列服务

 

 

五、查看RabbitMQ插件

/usr/lib/rabbitmq/bin/rabbitmq-plugins list

RabbitMQ消息队列服务

 

六、打开RabbitMQ插件

/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management rabbitmq_web_dispatch amqp_client rabbitmq_management_agent

RabbitMQ消息队列服务

 

 

七、重启RabbitMQ服务、进入登录界面

systemctl restart rabbitmq-server

 IP:15672 或 192.168.130.30:15672

RabbitMQ消息队列服务

 

 登陆成功:

RabbitMQ消息队列服务