rabbitmq 常用命令及远程连接方法


1. rabbitmq 用户角色分类
none、management、policymaker、monitoring、administrator

2.RabbitMQ各类角色描述:
none
不能访问 management plugin

management

用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts  
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。

policymaker 
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters

monitoring 
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息

administrator   
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections

3.创建用户并分配角色
(1).添加用户
# rabbitmqctl add_user username password
(2).删除用户
# rabbitmqctl delete_user username
(3).修改密码
# rabbitmqctl change_password username newpassword
(4).列出所有用户
# rabbitmqctl list_users
(5).为用户分配角色
# rabbitmqctl set_user_tags username  rolename

4.权限控制
默认用户:guest  默认virtual host:"/" guest具有"/"上的全部权限,仅能有localhost访问RabbitMQ包括Plugin,建议删除或更改密码。
(1).创建虚拟主机
# rabbitmqctl add_
vhost vhostpath
(2).删除虚拟主机
# rabbitmqctl delete_
vhost vhostpath
(3).列出所有虚拟主机
# rabbitmqctl list_vhosts
(4).设置用户权限
# rabbitmqctl set_permissions [-p vhostpath] username regexp regexp regexp

rabbitmqctl set_permissions -p az guest ".*" ".*" ".*"  --赋予全部权限
(5).清除用户权限
# rabbitmqctl clear_permissions [-p vhostpath] username
(6).列出虚拟主机上的所有权限
# rabbitmqctl list_permissions [-p vhostpath]
(7).列出用户权限

# rabbitmqctl list_user_permissions username
 
5.代码实例
 1 # _*_coding:utf-8_*_
 2 __author__ = 'Alex Li'
 3 import pika
 4 
 5 credentials = pika.PlainCredentials('admin', '1231')
 6 connection = pika.BlockingConnection(pika.ConnectionParameters(host='109.115.12.55',credentials=credentials,virtual_host='az'))
 7 channel = connection.channel()
 8 
 9 channel.exchange_declare(exchange='logs',type='fanout')
10 
11 result = channel.queue_declare(exclusive=True)  # 不指定queue名字,rabbit会随机分配一个名字,exclusive=True会在使用此queue的消费者断开后,自动将queue删除
12 queue_name = result.method.queue #获得上面随机生成的queue名
13 
14 channel.queue_bind(exchange='logs',queue=queue_name)
15 
16 print(' [*] Waiting for logs. To exit press CTRL+C')
17 
18 def callback(ch, method, properties, body):
19     print(" [x] %r" % body)
20 
21 channel.basic_consume(callback,queue=queue_name,no_ack=True)
22 channel.start_consuming()
View Code
 1 import pika
 2 import sys
 3 
 4 credentials = pika.PlainCredentials('admin', '1231')
 5 connection = pika.BlockingConnection(pika.ConnectionParameters(host='109.115.12.55',credentials=credentials,virtual_host='az'))
 6 channel = connection.channel()
 7 
 8 channel.exchange_declare(exchange='logs',
 9                          type='fanout')
10 
11 message = ' '.join(sys.argv[1:]) or "info: Hello World!"
12 channel.basic_publish(exchange='logs',
13                       routing_key='',
14                       body=message)
15 print(" [x] Sent %r" % message)
16 connection.close()
View Code

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM