【RabbitMQ】环境搭建,版本选择和安装,添加用户授权
RabbitMQ作为一款强大的开源消息代理软件,基于AMQP协议,帮助你构建解耦、可靠、可扩展的分布式应用程序。对于.NET开发者来说,掌握RabbitMQ无疑是提升架构能力的重要一环。
接下来,我会通过一个由浅入深的系列教程,从理论到实操,带你全面掌握RabbitMQ在.NET中的应用。这个系列会涵盖基本概念、环境搭建、基础编程、高级特性、可靠性保障以及性能优化和实战场景。
Windows下环境搭建
RabbitMQ是一个开源的AMQP实现,是建立在强大的Erlang OTP平台上,服务器端用Erlang语言编写,因此安装RabbitMQ的前提是安装Erlang。
Erlang
下载链接:http://erlang.org/download/
RabbitMQ
更新记录:https://www.rabbitmq.com/changelog.html
下载链接:https://www.rabbitmq.com/download.html
配置文件:https://www.rabbitmq.com/configure.html
一、版本选择
RabbitMQ Erlang 版本要求:https://www.rabbitmq.com/which-erlang.html
下载安装之前一定要看看,选择兼容的版本。
这里Erlang选择erl-24.0,RabbitMQ 选择rabbitmq_server-3.9.13。
二、安装Erlang
1、双击otp_win64_24.0.exe直接安装,选择默认配置即可。





2、设置Erlang的环境变量和path路径。
默认情况下安装程序会生成一个系统环境变量,如果没有生成就自己添加一个系统变量, 然后添加到Path中(都在系统变量里操作)。


3、测试下,配置好之后,打开CMD,输入erl然后回车键,会弹出版本信息,表示Erlang安装成功。

三、安装RabbitMQ
1、双击rabbitmq-serve-3.9.13.exe进行安装,选择默认配置即可


到这儿就算安装完成了。
2、启用rabbitmq_management插件(Web网页管理插件)
在RabbitMQ中,rabbitmq_management插件是一个非常有用的插件,它提供了HTTP API以及一个基于Web的用户界面,用于管理和监控RabbitMQ服务器。要启用rabbitmq_management插件,你可以按照以下步骤操作:
(1)、停止RabbitMQ服务
在 Windows 上,你可以通过服务管理控制台 (services.msc) 或命令行工具 net 来停止服务,如果是用命令行,注意要用管理员身份。
#cmd命令
net stop RabbitMQ

(2)、启用rabbitmq_management插件
打开CMD窗口,切换到RabbitMQ安装路径的sbin目录下。
这里有两种方法,一种是在安装目录sbin级的文件栏输入cmd,一种是打开开始菜单,RabbitMQ Server->点击RabbitMQ Command Prompt (sbin dir)。
输入CMD命令:
#CMD命令
rabbitmq-plugins enable rabbitmq_management
可以看到如下图,就是启用成功了。

(3)、启用完rabbitmq插件,开启服务。
#cmd命令
net start RabbitMQ
这里也有另一种开启服务的简单方法,打开开始菜单,RabbitMQ Server->RabbitMQ Service-start开启服务。
(同理,刚才上面关闭服务也可以从开始菜单,RabbitMQ Server->RabbitMQ Service-end关闭服务。)
如下图所示

3、访问RabbitMQ管理界面
一旦rabbitmq_management插件启用,你就可以通过浏览器访问 http://localhost:15672 来访问RabbitMQ的管理界面了,使用用户名和密码(默认是 guest/guest)登录。
登录成功如下图所示

到这里RabbitMQ和rabbitmq_management插件全部安装完成了。
四、添加用户,设置权限
在RabbitMQ中,用户和权限管理是非常重要的,因为它允许你控制谁可以访问哪些资源以及他们可以进行哪些操作。以下是添加用户和授权的基本步骤:
以下是RabbitMQ添加用户并授权的完整操作指南(命令行方式):
1、添加用户
rabbitmqctl add_user #示例:创建用户bi rabbitmqctl add_user bi_user 123456
2、设置用户角色
rabbitmqctl set_user_tags <username> <tag>
#常用角色标签:
monitoring:监控权限(仅查看权限)
policymaker:策略管理权限
management:普通管理权限(基础管理权限)
administrator:超级管理员(完全控制)
#示例:设为超级管理员
rabbitmqctl set_user_tags bi_user administrator
3、虚拟主机授权
rabbitmqctl set_permissions -p <vhost> <username> <conf> <write> <read> #权限参数说明: conf:资源配置权限(正则匹配) write:写入权限 read:读取权限 #示例:授权默认虚拟主机所有权限 rabbitmqctl set_permissions -p / bi_user ".*" ".*" ".*"
4、验证操作
#查看用户列表:
rabbitmqctl list_users
#检查用户权限:
rabbitmqctl list_user_permissions app_user
如下图所示

完整示例流程:
# 1. 创建用户 rabbitmqctl add_user service_account S3cr3tPwd! # 2. 设为监控角色 rabbitmqctl set_user_tags service_account monitoring # 3. 授权特定虚拟主机 rabbitmqctl add_vhost /service_vhost rabbitmqctl set_permissions -p /service_vhost service_account "^service_.*" "^service_.*" ".*"
注意事项:
1、生产环境建议禁用默认guest用户
2、密码设置复杂点,比如字母+数字+符号
3、权限正则表达式需精确匹配资源名称(如"^order_.*"匹配以order_开头的队列)
通过Web管理界面 http://localhost:15672也可完成相同操作,这里就不做示范了。

浙公网安备 33010602011771号