我们一起来学RabbitMQ 四(RabbitMQ windows 安装)
RabbitMQ windows 安装
下载 RabbitMQ
https://www.rabbitmq.com/inst...
搜索关键字 Download
文章图片
下载 erlang 环境安装包下
https://www.erlang.org/downloads
文章图片
安装配置erlang
点击上述下载的 otp_win64_24.0.exe
一直 next 即可,记住自己的安装路径,使用默认的即可,若自定义,最好全路径都是英文
新建环境变量
- 新建系统变量 - 键入变量名 ERLANG_HOME
文章图片
- %ERLANG_HOME%\bin 添加到 Path 路径下
文章图片
- 进入 cmd 查看效果
文章图片
如上图效果,即为安装配置 erlang 环境成功
安装配置 RabbitMQ server
- 安装上述下载的 rabbitmq-server-3.8.19.exe ,一直 next 即可 ,记住自己的安装路径,使用默认的即可,若自定义,建议全路径都是英文
- 打开 cmd 进入目录,例如我的目录是 :
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.19\sbin
- 执行
rabbitmq-plugins enable rabbitmq_management
文章图片
会看到上述效果,三个插件被启动了
- 【我们一起来学RabbitMQ 四(RabbitMQ windows 安装)】网页上查看效果
http://localhost:15672/
guest 用户只能在本地访问web 页面
密码:guest
文章图片
命令(cmd 中可以执行)
net start RabbitMQ启动
net stop RabbitMQ停止
rabbitmqctl status查看状态
RabbitMQ ubuntu 安装 咱们再来看看linux 中RabbitMQ 如何安装和使用
RabbitMQ使用erlang语言写的,所以在安装RabbitMQ前,我们需要安装erlang,erlang又需要安装 python 和 simplejson
安装 pyhton
wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xztar xvfPython-3.5.2.tar.xzcd Python-3.5.2./configuremake && make install
安装 simplejson
sudo apt-get install python-simplejson -y
安装 Erlang依赖包
sudo apt-get install build-essential -y
sudo apt-get install libncurses5-dev -y
sudo apt-get install libssl-dev -y
sudo apt-get install m4 -y
sudo apt-get install unixodbc unixodbc-dev -y
sudo apt-get install freeglut3-dev libwxgtk2.8-dev -y
sudo apt-get install xsltproc -y
sudo apt-get install fop -y
sudo apt-get install tk8-y
安装 Erlang
sudo apt-get install erlang -y
安装 RabbitMQ
sudo apt-get updatesudo apt-get install rabbitmq-server
查看 RabbitMQ 状态
# systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ Messaging Server
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service;
enabled;
vendor preset: enabled)
Active: active (running) since Fri 2021-07-23 14:51:31 CST;
7min ago
Main PID: 426 (beam.smp)
Status: "Initialized"
Tasks: 85 (limit: 2338)
CGroup: /system.slice/rabbitmq-server.service
├─ 413 /bin/sh /usr/sbin/rabbitmq-server
├─ 426 /usr/lib/erlang/erts-9.2/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K true -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa
├─ 604 /usr/lib/erlang/erts-9.2/bin/epmd -daemon
├─ 904 erl_child_setup 65536
├─1000 inet_gethost 4
└─1001 inet_gethost 4
RabbitMQ管理 RabbitMQ management 插件可以提供Web管理界面用来管理虚拟主机、用户等,也可以用来管理队列、交换机、绑定关系、策略、参数等
还可以用来监控RabbitMQ服务的状态及一些数据统计类信息 ,有兴趣的可以感受一下
多租户与权限
每一个 RabbitMQ 服务器都能创建虚拟的消息服务器,称为虚拟主机( Virtual Host ),简称vhost。
每一个本质上都是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换机及绑定关系等,并且它拥有自己独立的权限。
Virtual Host相互之间是绝对隔离的,无法将vhost1中的交换机与vhost2中的队列进行绑定,这样既保证了安全性,又可以确保可移植性
安装好 RabbitMQ 后,会有一个默认的 vhost 为
/
- 使用
rabbitmqctl add_vhost xxx
命令创建一个新的 vhost
root@xxx:/# rabbitmqctl add_vhost testvhost
Creating vhost "testvhost"
- 删除 vhost 的命令时
rabbitmqctl delete_vhost xxx
root@xx:/# rabbitmqctl delete_vhost testvhost
Deleting vhost "testvhost"
注意
删除一个 vhost 同时也会删除其下所有的队列、交换机、绑定关系、用户权限、参数和策略等信息
- 在RabbitMQ中,权限控制是以 vhost 为单位的。
因此,RabbitMQ 中的授权是指在vhost级别对用户而言的权限授予
相关的授权命令为:
rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}
- vhost:授予用户访问权限的 vhost 名称,可以设置为默认值,即vhost为
/
- user:可以访问指定 vhost 的用户名
- conf:一个用于匹配在哪些资源上拥有可配置权限的正则表达式
- write:一个用于匹配在哪些资源上拥有可写权限的正则表达式
- read:一个用于匹配在哪些资源上拥有可读权限的正则表达式
- 授予 root 用户可访问虚拟主机 testvhost,并在所有资源商都具备可配置、可写及可读的权限
root@xxx:/# rabbitmqctl set_permissions -p testvhost root ".*" ".*" ".*"
Setting permissions for user "root" in vhost "testvhost"
- 列举权限信息
root@xxx:/# rabbitmqctl list_permissions -p testvhost
Listing permissions in vhost "testvhost"
root.*.*.*
用来显示用户的权限:rabbitmqctl list_user_permissions {username}
root@983cebfa9073:/# rabbitmqctl list_user_permissions root
Listing permissions for user "root"
testvhost.*.*.*
/.*.*.*
用户管理
在 RabbitMQ 中,用户是访问控制的基本单位
单个用户可以跨越多个 vhost 进行授权
针对一至多个 vhost ,用户可以被赋予不同级别的访问权限,并使用标准的用户名和密码来认证用户
- 创建用户的命令为
root@xx:/# rabbitmqctl add_user root 123456
Creating user "root"
- 更改指定用户的密码
root@xx:/# rabbitmqctl change_password root test001
Changing password for user "root"
- 设置用户角色
角色 | 权限 |
---|---|
administrator | 最高权限,包含monitoring的所有权限,并且可以管理用户、虚拟主机、权限、策略、参数等 |
monitoring | 包含management的所有权限,并且可以看到所有连接、信道及节点相关信息 |
policymaker | 包含management的所有权限,并且可以管理策略和参数 |
management | 可以访问Web管理界面 |
none | 默认权限,无任何角色,新建的用户默认为none |
root@xx:/# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [administrator]
- 清除密码
root@xx:/# rabbitmqctl clear_password root
Clearing password for user "root"
- 验证用户密码
root@xx:/# rabbitmqctl authenticate_user root test001
Authenticating user "root"
Success
root@xx:/# rabbitmqctl authenticate_user root 123456
Authenticating user "root"
Error: failed to authenticate user "root"
- 查看当前用户列表
root@xx:/# rabbitmqctl list_users
Listing users
root[administrator]
- 删除用户
rabbitmqctl delete_use {username}
root@xx:/# rabbitmqctl delete_user root
Deleting user "root"
Web端管理
访问Web管理界面
- 本地
- 远程
Listening ports
文章图片
Protocol | Bound to | Port |
---|---|---|
amqp | :: | 5672 |
clustering | :: | 25672 |
http | :: | 15672 |
- 5672 端口
- 15672
- 25672
参考资料:
RabbitMQ Tutorials
欢迎点赞,关注,收藏 朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力
文章图片
好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是小魔童哪吒,欢迎点赞关注收藏,下次见~
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第三节|第三节 快乐和幸福(12)
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- 这辈子我们都不要再联系了