消息队列(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用户命令 | rabbitmqctl add_user <用户名> <密码> |
删除... | rabbitmqctl delete_user <用户名> |
修改... | rabbitmqctl change_password <用户名> <新密码> |
添加一个openstack用户,设置新密码为000000
rabbitmqctl add_user openstack RABBIT_password
rabbitmqctl change_password openstack 000000
三、管理用户权限
rabbitmqctl set_permissions openstack '.*' '.*' '.*
以上命令给‘openstack’这个用户设置了使用队列的权限。命令中的3个‘.*’分别对应配置、写入、读取权限。其中‘.*’表示所有资源。命令执行完成后‘openstack’用户就拥有了对RabbitMQ所有资源的配置、写入、读取权限。
设置该用户为管理员:rabbitmqctl set_user_tags openstack administrator
查看用户列表: rabbitmqctl list_users
四、查看监听端口 rabbitmq默认端口5672
每一个服务都是通过特定的一个或者数个端口对外提供服务的
netstat -ntlp | grep 5672
五、查看RabbitMQ插件
/usr/lib/rabbitmq/bin/rabbitmq-plugins list
六、打开RabbitMQ插件
/usr/lib/rabbitmq/bin/rabbitmq-plugins enable rabbitmq_management rabbitmq_web_dispatch amqp_client rabbitmq_management_agent
七、重启RabbitMQ服务、进入登录界面
systemctl restart rabbitmq-server
IP:15672 或 192.168.130.30:15672
登陆成功: