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类型的交换器的性能很差,不建议使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端