RabbitMQ 安装与使用

简介

RabbitMQ是一个消息代理,,它接收并转发消息。RabbitMQ 是轻量级的,易于在本地和云端部署。它支持多种消息传递协议。RabbitMQ 可以部署在分布式和联合配置中,以满足大规模、高可用性的要求。

安装

RabbitMQ 运行依赖ERLANG环境,所以首先去官网下载并安装ERLANG。

在这里插入图片描述
安装完成后配置环境变量 ERLANG_HOME, 然后再往 PATH 中添加 %ERLANG_HOME%\bin

RabbitMQ官网选择合适的RabbitMQ版本下载,运行下载回来的的.exe文件,按照提示操作直至安装完成。

打开命令行窗口,进入 RabbitMQ 安装目录下的sbin目录,输入命令 rabbitmq-plugins enable rabbitmq_management 启用管理界面插件,然后运行 rabbitmq-server.bat 启动服务。

打开浏览器输入http://127.0.0.1:15672访问管理界面,使用默认的用户名和密码guest/guest登录。

在这里插入图片描述

管理用户和权限

RabbitMQ 提供了 CLI 工具管理用户和权限,可以参考官方文档

生成复杂密码是一种常见的安全做法,通常涉及非字母数字字符。此做法完全适用于RabbitMQ用户。shell(bash、zsh等)将某些字符(!、?、&、^、“、'、*、~等)解释为控制字符。当在命令行上为rabbitmqctl add_userrabbitmqctl change_password 和其他接受密码的命令指定密码时,必须为所使用的shell适当地转义这些控制字符。如果转义不当,命令将失败,或者RabbitMQ CLI工具将从shell接收到不同的值。

rabbitmqctl [-n <node>] [-t <timeout>] [-l] [-q] <command> [<command options>]

General options:
    -n node
    -q quiet
    -t timeout
    -l longnames

rabbitmqctl 可选参数

  • node
    默认节点为“rabbit@server“,其中“server”是本地主机名。在主机上名为“server.example.com”,RabbitMQ Erlang节点的节点名通常是rabbit@server(除非RABBITMQ_NODENAME已设置为在代理启动时的非默认值)。hostname-s的输出通常是在“@”符号后使用的正确后缀。

  • quiet
    标志选择安静输出模式。信息性消息为在静音模式有效时被抑制。

  • timeout
    操作超时(秒)。仅适用于“list”命令。默认为无穷。

  • longnames
    如果RabbitMQ broker 使用长节点名为erlang分发,则“longnames”应该指定选项。

用户管理

  • 查看所有用户
rabbitmqctl [-n <node>] [-t <timeout>] [-q] list_users
  • 添加用户
rabbitmqctl [-n <node>] [-t <timeout>] [-q] add_user <username> <password>

添加用户 test 密码设置为 test rabbitmqctl add_user "test" "test"

  • 修改用户密码
rabbitmqctl [-n <node>] [-t <timeout>] [-q] change_password <username> <password>

修改用户 test 的密码为 test1 rabbitmqctl change_password "test" "test1"

  • 删除用户
rabbitmqctl [-n <node>] [-t <timeout>] [-q] delete_user <username>

删除用户 test rabbitmqctl delete_user "test"

  • 验证用户
rabbitmqctl [-n <node>] [-t <timeout>] [-q] authenticate_user <username> <password>

验证用户 test 的密码是否为 test rabbitmqctl authenticate_user "test" "test"

权限管理

操作权限分为以下几种:

  1. administrator:(管理员)可以登录控制台、查看所有信息、并对rabbitmq进行管理
  2. monToring:(监控者)可以登录控制台,查看所有信息
  3. policymaker:(策略制定者)可以登录控制台指定策略
  4. managment:(普通管理员)可以进行登录控制

对应指令中的 tag 标签。

  • 设置用户角色分配操作权限
rabbitmqctl [-n <node>] [-t <timeout>] [-q] set_user_tags <username> <tag> [...]

给 test 用户添加管理员权限 rabbitmqctl set_user_tags test administrator

  • 授予权限
# First ".*" for configure permission on every entity
# Second ".*" for write permission on every entity
# Third ".*" for read permission on every entity
rabbitmqctl [-n <node>] [-t <timeout>] [-q] set_permissions [-p <vhost>] <username> <conf> <write> <read>

为 test 用户添加资源权限(授予虚拟机根节点的所有权限) rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

  • 回收权限
# Revokes permissions in a virtual host
rabbitmqctl [-n <node>] [-t <timeout>] [-q] clear_permissions [-p vhost] <username>

取消用户 test 的权限 rabbitmqctl clear_permissions -p / "username"

更多操作可以参考 rabbitmqctl --help

端口配置

RabbitMQ 安装目录下的 etc 目录中有一个 README.txt 文件, 根据其描述可知,RabbitMQ 默认的配置文件路径为C:\Users\%USERNAME%\AppData\Roaming\RabbitMQ\rabbitmq.config, 如果找不到该文件那么我们新建一个,可以将安装目录下的 etc 目录中的 rabbitmq.config.example 文件内容拷贝过去,按需修改。

在这里插入图片描述

使用rabbitmqctl status 指令查看RabittMQ信息。

在这里插入图片描述

端口修改

15672

RabbitMQHTTP_API的端口,管理员用户才能访问,用于管理RabbitMQ,需要启动Management插件。在 rabbitmq.config 文件中找到 rabbitmq_management 属性,修改 listener 中的 port 属性。

{rabbitmq_management,
  [
  	{listener, [{port,     15672},
                {ip,       "127.0.0.1"},
                {ssl,      true}
  ]
}

5672

RabbitMQ的通讯端口,在 rabbitmq.config 文件中找到 rabbit 属性,修改 tcp_listeners 属性。

{
	rabbit,
	[{
		tcp_listeners,
		[
			{"127.0.0.1", 5672},
			{"::1", 5672}
		]
	}]
}

可能遇到的问题

1、node with name “rabbit” already running on “localhost”

描述:
启动 rabbitmq-server 时,报错 node with name "rabbit" already running on "localhost"

解决方案:
tasklist | findstr erl找到对应进程, taskkill /pid 对应的pid /f将其结束, 重新启动 rabbitmq-server。

2、could not start kernel pid",application_controller

描述:
启动 rabbitmq-server 时, 报错 {"could not start kernel pid",application_controller,"error in config file \"c:/Users/admin/AppData/Roaming/RabbitMQ/rabbitmq.config\" (554): syntax error before: ']'"}

解决方案:
由于rabbitmq.conf 是JSON 格式的,所以修改配置后尤其要注意修改后的配置文件内容是否符合JSON格式。按照错误提示找到对应行,发现多了一个逗号,将其删除保存后重新启动。

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值