草庐IT

RabbitMQ常用命令

做一道光 2023-09-20 原文

启动和关闭

1、启动RabbitMQ

rabbitmq-server start &

 

注意:这里可能会出现错误,错误原因是/var/lib/rabbitmq/.erlang.cookie文件权限不够。

解决方案对这个文件授权

 chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

chmod 400 /var/lib/rabbitmq/.erlang.cookie

2、停止服务

rabbitmqctl stop

插件管理

1、添加插件

rabbitmq-plugins enable {插件名}

注意:RabbitMQ启动以后可以使用浏览器进入管控台但是默认情况RabbitMQ不允许直接使用浏览器浏览器进行访问因此必须添加插件

rabbitmq-plugins enable rabbitmq_management

 

 

2、删除插件

rabbitmq-plugins disable {插件名}

3、使用浏览器访问管控台http://RabbitMQ服务器IP:15672

http://192.168.174.129:15672/

这里使用的ip地址是你的主机ip的地址,端口号统一为15672

用户管理

RabbitMQ安装成功后使用默认用户名guest登录

账号:guest

密码:guest

注意:这里guest只允许本机登录访问需要创建用户并授权远程访问命令如下

1、添加用户:rabbitmqctl add_user {username} {password}

 rabbitmqctl add_user root 123456

2、删除用户:rabbitmqctl delete_user {username}

3、修改密码:rabbitmqctl change_password {username} {newpassword}

rabbitmqctl change_password root 123456

4、设置用户角色:rabbitmqctl set_user_tags {username} {tag}

rabbitmqctl set_user_tags root administrator

tag参数表示用户角色取值为:management monitoring policymaker  administrator

各角色详解:

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

完成上图的root赋予管理员权限操作后,就可以正常使用root的账号密码通过浏览器登录控制台了

 

 权限管理

 

1、授权命令:rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}

-p vhostpath :用于指定一个资源的命名空间,例如 –p / 表示根路径命名空间

user:用于指定要为哪个用户授权填写用户名

     conf:一个正则表达式match哪些配置资源能够被该用户配置。
       write:一个正则表达式match哪些配置资源能够被该用户读。
       read:一个正则表达式match哪些配置资源能够被该用户访问。

   例如:

     rabbitmqctl set_permissions -p / root '.*' '.*' '.*'

   用于设置root用户拥有对所有资源的 读写配置权限

 

 

2、查看用户权限 rabbitmqctl  list_permissions [vhostpath]

例如

  查看根径经下的所有用户权限

  rabbitmqctl  list_permissions

  查看指定命名空间下的所有用户权限

  rabbitmqctl  list_permissions /abc

3、查看指定用户下的权限rabbitmqctl  list_user_permissions {username}

例如

  查看root用户下的权限

  rabbitmqctl  list_user_permissions root

4、清除用户权限rabbitmqctl  clear_permissions {username}

例如:

清除root用户的权限

rabbitmqctl  clear_permissions root

vhost管理

 vhost是RabbitMQ中的一个命名空间,可以限制消息的存放位置利用这个命名空间可以进行权限的控制有点类似Windows中的文件夹一样,在不同的文件夹中存放不同的文件。

1、添加vhost: rabbitmqctl add vhost {name}

例如

  rabbitmqctl add vhost bjpowernode

 

在输入框中输入test,点击add按钮,就可以创建出test文件空间了

 

2、删除vhost:rabbitmqctl delete vhost {name}

   例如

rabbitmqctl delete vhost bjpowernode

有关RabbitMQ常用命令的更多相关文章

  1. 华为常用命令 - 2

    system-view进入系统视图quit退到系统视图sysname交换机命名vlan20创建vlan(进入vlan20)displayvlan显示vlanundovlan20删除vlan20displayvlan20显示vlan里的端口20Interfacee1/0/24进入端口24portlink-typeaccessvlan20把当前端口放入vlan20undoporte1/0/10删除当前VLAN端口10displaycurrent-configuration显示当前配置02配置交换机支持TELNETinterfacevlan1进入VLAN1ipaddress192.168.3.100

  2. 绝对详细的 RabbitMQ 实践操作手册(一) - 2

    绝对详细的RabbitMQ实践操作手册,看完本系列就够了。一、什么是MQ?1、MQ的概念2、理解消息队列二、MQ的优势和劣势1、优势和作用2、劣势三、MQ的应用场景四、AMQP五、工作原理一、什么是MQ?1、MQ的概念MQ全称MessageQueue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。下面用图来理解异步通信,并阐明与同步通信的区别。同步通信:甲乙两人面对面交流,你一句我一句必须同步进行,两人除此之外不做任何事情异步通信:异步通信相当于通过第三方转述对话,可能有消息的延迟,但不需要二人时刻保持联系,消息传给第三方后,两人可以做其他自己想做的事情,当需要获取

  3. git常用命令 - 2

    gitclonehttp:www.git.com.cn........ 克隆git项目gitbranch 查看分支gitbranch-r查看远程分支gitpushorigin--delete分支名 删除远程分支tmpgitcheckout切换分支gitcheckout-b切换并创建分支gitcheckout-b分支名origin/分支名(如果远程分支已存在最好用此命令,在创建分支时会把远程分支最新代码一并拉下来,不会把原分支代码带过来)gitbranch-D删除分支gitpushorigin--delete分支名gitpush--set-upstreamorigin分支名 推送本地分支到远端g

  4. javascript - RabbitMQ + Web Stomp 和安全性 - 2

    RabbitMQ+WebStomp很棒。但是,我有一些主题我希望安全为只读或只写。似乎保护这些的唯一机制是使用rabbitmqctl。我可以创建一个虚拟主机,一个用户,然后应用一些权限。然而,这就是Stomp和Rabbit实现开始崩溃的地方。主题采用以下形式:stomp中的/topic/blah,它使用路由键“blah”路由到Rabbit中的“amq.topic”。似乎没有办法为路由key设置权限。似乎:rabbitmqctlset_permissions-pvhostuser".*"".*""^amq\.topic"是我能做的最好的,这仍然是“所有”主题。我也研究过交换,但没有办法在

  5. RabbitMQ如何实现延迟队列 - 2

    1.延迟队列延迟队列,即消息进入队列后不会立即被消费,只有到达指定时间后,才会被消费。很可惜,在RabbitMQ中并未提供延迟队列功能,但是我们有其他的方式可以实现延迟队列,方法就是TTL+死信队列,组合实现延迟队列的效果。2.什么是TTLTTL,全称TimeToLive,消息过期时间设置。消息的TTL就是消息的存活时间。RabbitMQ可以对队列和消息分别设置TTL。对队列设置就是队列没有消费者连着的保留时间,也可以对每一个单独的消息做单独的设置。超过了这个时间,我们认为这个消息就死了,称之为死信。队列过期后,会将队列所有消息全部移除。一个队列中某一个消息过期后,只有消息在队列顶端,才会判断

  6. javascript - 如何在没有nodejs的情况下使用javascript连接到rabbitmq - 2

    我正在使用Titaniumappcelerator实现移动应用程序。在此应用中,我需要使用RabbitMQ实现聊天。我看到了很多关于如何使用节点js连接到RabbitMQ服务器的示例,但在我的例子中它不适用,我找不到任何JavaScript独立客户端。我想知道是否有一种方法可以在没有客户端的情况下连接到RabbitMQ,或者是否有任何JavaScript独立客户端? 最佳答案 是RabbitMQWebSTOMP吗?你在找什么?使用SockJS,即使在旧浏览器中也能正常工作,不需要Node.js或您编写的任何网络服务器端代码。

  7. RabbitMQ安装(发生系统错误5。拒绝访问)解决方案 - 2

    一、先检查一下Eralng是否安装好并配置好环境 新建系统变量名为:ERLANG_HOME变量值为erlang安装地址 双击系统变量path,点击“新建”,将%ERLANG_HOME%\bin加入到path中。检查是否安装好:二、1、管理员运行cmd然后打开RabbitMQ安装目录\sbin2、rabbitmq-service.batremove3、setRABBITMQ_BASE=D:\rabbitmq_server\data(D:\rabbitmq_server\data是我自己自定义的目录,这样就绕过c\user\用中文用户名…这个文件夹,这样就不会有中文路径的问题了)4、rabbitm

  8. go - Go 中的 RabbitMQ : machinery worker cannot to connect to 0. 0.0.0:5672 消息 getsockopt: 连接被拒绝 - 2

    RabbitMQ在wifi网络中运行良好,我在运行ArchLinux的笔记本电脑中设置了RabbitMQ。但是,当我在不同的wifi网络中使用同一台笔记本电脑时,出现以下错误:machinery:worker.go:42:Goingtoretrylaunchingtheworker.Error:Dial:dialtcp0.0.0.0:5672:getsockopt:connectionrefusedmachinery:retry.go:20:Retryinginxseconds我不知道为什么RabbitMQ在一个网络中工作而不在另一个网络中工作。我尝试更改/etc/rabbitmq/r

  9. go - 如何检查 channel 是否仍在 streadway/amqp RabbitMQ 客户端中工作? - 2

    这个问题在这里已经有了答案:HowtodetectdeadRabbitMQconnection?(4个答案)关闭9个月前。我正在使用github.com/streadway/amqp对于我的程序。在重新初始化之前,我应该如何确保用于消费和/或生产的channel仍在工作?例如,在ruby​​中,我可以简单地做:bunny_client=Bunny.new({....})bunny_client.start启动客户端,ifnotbunny_clientorbunny_client.status!=:connected#re-initializetheclient如何使用streadway

  10. go - golang 消费者端超时 rabbitmq - 2

    我正在使用rabbitmq和golang,我在comsumer端创建了一个等待消息的线程,例如rabbitmq示例。我想主线程将等待kill信号并将信号发送到rabbitmq线程,但如果消息未推送到队列中,rabbitmq线程将永远等待,因此它不会处理kill信号消息。我发现rabbitmq在comsumer中有超时,但我刚刚在java中找到了代码,而不是golang。你能帮助我吗?谢谢。 最佳答案 如果我对您的问题的理解正确,您希望能够退出例行处理队列?超时设置在这里不起作用。这是针对服务器/客户端心跳的,只有在任何时候都没有收到

随机推荐