1、常用命令如下:

查看RabbitMQ服务状态:rabbitmqctl status

启用web插件:rabbitmq-plugins enable rabbitmq_management

添加页面用户及密码:rabbitmqctl add_user admin 123456

 赋予其administrator角色:rabbitmqctl set_user_tags admin administrator

设置权限:rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

查看所有用户:rabbitmqctl list_users

查看用户权限:rabbitmqctl list_user_permissions admin

删除用户:rabbitmqctl delete_user guest

修改用户密码:rabbitmqctl change_password admin admin

清除用户密码:rabbitmqctl clear_password admin

验证密码:rabbitmqctl authenticate_user admin admin@2022

清除用户权限: rabbitmqctl clear_permissions -p / admin

查看策略:    rabbitmqctl list_policies

清除策略:    rabbitmqctl clear_policy name #name 策略名称

创建一个队列,打开持久化 rabbitmqadmin declare queue name=myj-mq durable=true

查看队列:    rabbitmqctl list_queues

删除队列:    rabbitmqadmin delete queue name=myj-mq

创建一个交换器:rabbitmqadmin declare exchange name=my.topic durable=true type=topic

列出交换器: rabbitmqadmin list exchanges

删除交换器: rabbitmqadmin delete exchange name=my.topic

创建binding: rabbitmqadmin declare binding source=my.topic destination=myj-mq routing_key=myj-mq

#source: 交换器

#destination:队列

#routing_key:路由key

列出binding:   rabbitmqadmin list bindings

发布一条消:rabbitmqadmin publish exchange=my.topic routing_key=myj-mq payload="just for test"

删除路由和队列的绑定关系:rabbitmqadmin delete binding source='my.topic' destination_type=queue destination=myj-mq  properties_key=myj-mq

查看消息:    rabbitmqadmin get queue=myj-mq

查看集群状态:rabbitmqctl cluster_status

查看所有链接:rabbitmqadmin list connections

清空队列消息:rabbitmqadmin purge queue name=myj-mq

更改节点为磁盘节点或者内存节点,默认磁盘节点 rabbitmqctl change_cluster_node_type disc/ram 

查看指定的vhost  rabbitmqctl list_vhosts

设置MQ 内存 rabbitmqctl set_vm_memory_high_watermark absolute 3GB

 配置账号密码:

 rabbitmqctl add_user myj myj123.com

 rabbitmqctl set_permissions -p / myj".*" ".*" ".*"

rabbitmqctl set_user_tags myj administrator

2、rabbitmqadmin 安装步骤

2.1 wget http://192.168.6.11:15672/cli/rabbitmqadmin
2.2 mv rabbitmqadmin /usr/local/bin/
2.3 chmod 777 /usr/local/bin/rabbitmqadmin

2.4 yum install python3 -y
2.5 rabbitmqadmin --help # 查看

3、Rabbitmq 4种交换器的区别(fanout、direct、topic、headers )

3.1 fanout:发布/订阅的广播模式,它会把发送到该交换器的消息发送到所有与该交换器绑定的队列中。不需要指定Routingkey和BindingKey。比如两个队列绑定了同一个交换器,那么2个队列都会同时收到消息

3.2 direct: 它会把消息路由到Routingkey与BindingKey完全匹配的队列中。一个交换器可以与多个队列绑定,同时一个交换器与一个队列绑定的时候可以使用多个BindingKey来多次绑定,在实践中如果一个交换器只绑定一个队列,那么可以将Routingkey和BindingKey看成一个东西,如果一个交换器绑定多个队列,则会把消息路由到Routingkey与BindingKey完全匹配的队列中,BindingKey 用于将队列和交换器绑定,Routingkey 告诉交换器当前消息发给哪个队列(Routingkey 等于 BindingKey 的这个队列)

3.3 topic:topic与direct类型的交换器类似,也是将消息路由到Routingkey与BindingKey匹配的队列中,但它不是完全匹配,而是模糊匹配,Routingkey和BindingKey一般使用“.”作为字符串的分隔符,例如:order.waitpay.current,BindingKey中可以存在两种用于模糊匹配的字符串:*和# ;#用于匹配一个单词,*用于匹配多个单词(可以是0个);例如:order.*.current

3.4 headers: headers类型的交换器不依赖于路由键的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配,再绑定队列和交换器时制定一组键值对,当发送消息到交换器时,RabbitMQ会获取到该消息的headers,对比其中的键值对是否完全匹配队列和交换器绑定时指定的键值对。如果完全匹配,则路由该消息到此队列中,headers类型的交换器的性能很差,不建议使用

 

posted on 2023-03-30 15:48  MhaiM  阅读(183)  评论(0编辑  收藏  举报