RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。RabbitMQ可以,多个程序同时使用RabbitMQ ,但是必须队列名称不一样。采用erlang语言,属于爱立信公司开发的。
rabbitmq用户及权限管理: 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
新增用户 rabbitmqctl add_user Username Password
删除用户 rabbitmqctl delete_user Username
修改用户的密码 rabbitmqctl change_password Username Newpassword
为用户分配角色 rabbitmqctl set_user_tags username administrator #Tags 可以是:administrator 管理员, monitoring 监控 , management 管理
查看当前用户列表 rabbitmqctl list_users
查看当前虚拟主机 rabbitmqctl list_vhosts
查看用户权限 rabbitmqctl list_user_permissions Username
设置用户访问权限 rabbitmqctl set_permissions -p vhostname username ".*" ".*" ".*" ##后边三个.*分别代表:配置权限、写权限、读权限 “/”是rabbitmq默认的虚拟机,默认连接
清除用户权限 rabbitmqctl clear_permissions Username
virtual_host管理
新建virtual_host: rabbitmqctl add_vhost xxx
撤销virtual_host: rabbitmqctl delete_vhost xxx
查看列表:rabbitmqctl list_vhosts
队列管理
查看当前队列信息:rabbitmqctl list_queues
清除所有队列:rabbitmqctl reset
[root@local ~]# rabbitmqctl add_user admin passwd ###添加用户 Creating user "admin" ... ...done. [root@local ~]# rabbitmqctl change_password admin pswd1234 ###修改用户密码 Changing password for user "admin" ... ...done. [root@local ~]# rabbitmqctl set_user_tags admin management ###分配用户角色 Setting tags for user "admin" to [management] ... ...done. [root@local ~]# rabbitmqctl list_users ###用户列表 Listing users ... admin [management] guest [administrator] ningnan [administrator] ...done. [root@local ~]# rabbitmqctl delete_user admin ###删除用户 Deleting user "admin" ... ...done.
[root@local ~]# rabbitmqctl list_user_permissions guest Listing permissions for user "guest" ... / .* .* .* ...done. [root@local ~]# rabbitmqctl set_permissions -p / ningnan ".*" ".*" ".*" Setting permissions for user "ningnan" in vhost "/" ... ...done. [root@local ~]# rabbitmqctl list_user_permissions ningnan Listing permissions for user "ningnan" ... / .* .* .* ...done. [root@local ~]# rabbitmqctl clear_permissions ningnan ##清除用户权限 Clearing permissions for user "ningnan" in vhost "/" ... ...done. [root@local ~]# rabbitmqctl list_user_permissions ningnan Listing permissions for user "ningnan" ... ...done.
遇见个调用问题 Dial: Exception (403) Reason: "username or password not allowed"
[root@local service_hcloud]# MQ Receive Statistics Version 1.0
Initiate log ...
init read config file ...
QueueName : STATI
Host : 192.168.0.3
userName : guest
PassWord : bs******
2019/03/18 11:26:28 dialing "amqp://192.168.0.3:5672/"
2019/03/18 11:26:31 Dial: Exception (403) Reason: "username or password not allowed"
2019/03/18 11:26:31 running forever
发现是因为服务配置文件写的有问题. 如图: