rabbitmq 常用命令
常用命令:
创建用户
rabbitmqctl add_user {用户名} {密码}
// 设置权限
rabbitmqctl set_user_tags {用户名} {权限}
例:创建一个超级用户
rabbitmqctl add_user admin1 admin1
rabbitmqctl set_user_tags admin1 administrator
查看用户列表
rabbitmqctl list_users
为用户赋权
// 使用户user1具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p vhost1 user1 '.*' '.*' '.*'
// 查看权限
rabbitmqctl list_user_permissions user1
创建queue exchange并绑定
1、创建exchange命令,修改name的内容,并修改type的类型
./rabbitmqadmin declare exchange --vhost=celery name="xxx" type=x-random durable=true -u 用户名 -p密码 -H host -P port
2、创建queue,修改name为需要创建的queue name
./rabbitmqadmin declare queue --vhost=celery name=xxx durable=true -u 用户名 -p密码 -H host -P port
3、exchange bind queue, source 为exchange name,destination和routing_key 默认为queue的名字
./rabbitmqadmin declare binding --vhost=celery source=exchange routing_key=queue destination=queue destination_type=queue -u 用户名 -p密码 -H host -P port
队列操作
1、查询队列
1 |
python /usr/local/sbin/rabbitmqadmin --vhost=vhost --username=username --password=123456 list queues |
2、添加队列
1 |
python /usr/local/sbin/rabbitmqadmin --vhost=/nde --username=user --password=1234 declare queue name=队列名称 |
3、删除队列
1 |
python /usr/local/sbin/rabbitmqadmin --vhost=/nde --username=user --password=1234 delete queue name=队列名称 |
其他相关操作请参照第四大点相关命令参数选项
交换操作
1、查询exchange
1 |
python /usr/local/sbin/rabbitmqadmin --vhost=vhost --username=username --password=123456 list exchange |
2、添加exchange
1 |
python /usr/local/sbin/rabbitmqadmin --vhost=vhost --username=user --password=password declare exchange name=exchange_name type=fanout |
1 |
<br><br>类型有四种:<br>direct:所有发送到Direct Exchange的消息被转发到RouteKey中指定的Queue。Direct模式,可以使用rabbitMQ自带的Exchange:default Exchange 。所以不需要将Exchange进行任何绑定(binding)操作 。<br>消息传递时,RouteKey必须完全匹配,才会被队列接收,否则该消息会被抛弃。 |
1 |
headers:官网未做说明<br><br>fanout:所有发送到Fanout Exchange的消息都会被转发到与该Exchange 绑定(Binding)的所有Queue上。Fanout Exchange 不需要处理RouteKey 。只需要简单的将队列绑定到exchange 上。<br>这样发送到exchange的消息都会被转发到与该交换机绑定的所有队列上。类似子网广播,每台子网内的主机都获得了一份复制的消息。所以,Fanout Exchange 转发消息是最快的。 |
1 |
<br><br>topic:所有发送到Topic Exchange的消息被转发到所有关心RouteKey中指定Topic的Queue上,Exchange 将RouteKey 和某Topic 进行模糊匹配。此时队列需要绑定一个Topic。可以使用通配符进行模糊匹配,<br>符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“log.#”能够匹配到“log.info.oa”,但是“log.*” 只会匹配到“log.error”。所以,Topic Exchange 使用非常灵活。 |
3、删除exchange
1 |
python /usr/local/sbin/rabbitmqadmin --vhost=/nde --username=user --password=1234 delete exchange <em id="__mceDel">name=exchange名称</em> |