我们一起来学RabbitMQ 四:RabbitMQ 的安装(win + ubuntu)及 RabbitMQ 管理方式 | 8月更文挑战

简介: RabbitMQ windows 安装下载 RabbitMQ

RabbitMQ windows 安装

下载 RabbitMQ

www.rabbitmq.com/install-win…

搜索关键字 Download

image.png

下载 erlang 环境安装包下

www.erlang.org/downloads

image.png

安装配置erlang

点击上述下载的 otp_win64_24.0.exe

一直 next 即可,记住自己的安装路径,使用默认的即可,若自定义,最好全路径都是英文

新建环境变量

  • 新建系统变量 - 键入变量名 ERLANG_HOME

image.png

  • %ERLANG_HOME%\bin 添加到 Path 路径下

image.png

  • 进入 cmd 查看效果

image.png

如上图效果,即为安装配置 erlang 环境成功

安装配置 RabbitMQ server

  • 安装上述下载的 [rabbitmq-server-3.8.19.exe](github-releases.githubusercontent.com/924551/55ce… filename%3Drabbitmq-server-3.8.19.exe&response-content-type=application%2Foctet-stream) ,一直 next 即可 ,记住自己的安装路径,使用默认的即可,若自定义,建议全路径都是英文
  • 打开 cmd 进入目录,例如我的目录是 :C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.19\sbin
  • 执行  rabbitmq-plugins enable rabbitmq_management

image.png

会看到上述效果,三个插件被启动了

账号:guest

密码:guest

image.png

命令(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.xz
tar xvf  Python-3.5.2.tar.xz
cd Python-3.5.2
./configure
make && 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 update
sudo 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 为单位的。

当创建一个用户时,用户通常会被指派给至少一个 vhost,并且只能访问被指派的 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"
  • 列举权限信息

用来显示虚拟主机上的权限:rabbitmqctl list_permissions [-p vhost]

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 ,用户可以被赋予不同级别的访问权限,并使用标准的用户名和密码来认证用户

  • 创建用户的命令为

rabbitmqctl add_user {username} {password}

root@xx:/# rabbitmqctl add_user root 123456
Creating user "root"
  • 更改指定用户的密码

rabbitmqctl change_password {username} {password}

root@xx:/# rabbitmqctl change_password root test001
Changing password for user "root"
  • 设置用户角色

用户的角色分为 5种 类型

角色 权限
administrator 最高权限,包含monitoring的所有权限,并且可以管理用户、虚拟主机、权限、策略、参数等
monitoring 包含management的所有权限,并且可以看到所有连接、信道及节点相关信息
policymaker 包含management的所有权限,并且可以管理策略和参数
management 可以访问Web管理界面
none 默认权限,无任何角色,新建的用户默认为none

rabbitmqctl set_user_tags {username} {tag …}

root@xx:/# rabbitmqctl set_user_tags root administrator
Setting tags for user "root" to [administrator]
  • 清除密码

rabbitmqctl clear_password {username}

root@xx:/# rabbitmqctl clear_password root
Clearing password for user "root"
  • 验证用户密码

rabbitmqctl authenticate_user {username} {password}

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"
  • 查看当前用户列表

rabbitmqctl list_users , 每一个用户后面紧跟用户的角色

root@xx:/# rabbitmqctl list_users
Listing users
root    [administrator]
  • 删除用户

rabbitmqctl delete_use {username}

root@xx:/# rabbitmqctl delete_user root
Deleting user "root"

Web端管理

访问Web管理界面

  • 本地

http://localhost:15672/

  • 远程

http://IP:15672/

Listening ports

image.png

Protocol Bound to Port
amqp :: 5672
clustering :: 25672
http :: 15672
  • 5672 端口

使用 amqp 协议的时候

  • 15672

访问 web 管理页面需要的端口

  • 25672

集群的时候,多个 rabbitmq-server 相互通信的时候使用

参考资料:

RabbitMQ Tutorials

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
20天前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
86 5
|
23天前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
148 18
|
2月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
161 18
|
2月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
168 15
|
2月前
|
存储 Ubuntu iOS开发
在Ubuntu 22.04系统上安装libimobiledevice的步骤
为了获取更多功能或者解决可能出现问题,请参考官方文档或者社区提供支持。
119 14
|
2月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
335 7
|
2月前
|
消息中间件 人工智能 运维
Ubuntu环境下的 RabbitMQ 安装与配置详细教程
本文聚焦在Ubuntu下RabbitMQ安装与配置教程,旨在帮助读者快速构建稳定可用的消息队列服务。
|
3月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
173 13
|
3月前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 22.04.1上安装MySQL 8.0及设置root密码的注意事项
这些是在Ubuntu 22.04.1 系统上安装MySQL 8.0 及设置root密码过程中必须考虑的关键点。正确的遵循这些步骤可确保MySQL的安装过程既顺利又安全。
639 20
|
3月前
|
Ubuntu Linux
如何在 Ubuntu 服务器上安装桌面环境(GUI)
如果你有任何问题,请在评论区留言。你会在服务器上使用 GUI 吗?参照本文后你遇到了什么问题吗?
350 0