RabbitMq介绍与安装
一:介绍#
一:简介#
Rabbitmq就是一个高级消息队列协议的开源消息协议的中间件,消息队列是应用程序到应用程序之间进行数据通信的通道,应用程序将消息发到队列中.另一方从队列中读取数据,完成数据的交互
二:产生背景#
在Python中在一个进程之中多线程可以通过线程队列完成线程之间的通信,也使用进程队列完成不通进程之间的通信
在上述两者之中使用的队列模块都是Python独有的 假如我现在有个进程A使用Python开发,有个进程B使用Go开发的,由于不同的语言问题导致不能完成数据的通信
或者两个应用程序都不在同一台主机
为解决上述问题 我们可以使用Rabbitmq进行不同语言开发的不同程序进行数据交互
三:应用场景#
系统的高可用性:
在电商某商品进行商品秒杀的时候,高流量,高并发的场景,由于服务器接收大量的数据请求,可能导致服务器宕机,某些业务场景可能极为复杂,但是实时性不是很高,我们可以将其加入到队列中,让程序后台去处理,减少服务器的压力
系统的高扩展性:
分布式系统,集成系统,子系统之间的对接,以及架构设计中常常需要考虑消息队列的应用。
二:安装Erlang#
安装Erlang 时要注意安装的RabbityMQ 所依赖的Erlang版本,根据RabbitMQ的要求选择一个版本,这里我要安装的RabbitMQ的版本是 3.7.7 ,他依赖的Erlang范围是20.3
Erlang下载地址 https://www.erlang.org/downloads/20.3
设置ERLANG_HOME 环境变量#
# 安装路径 D:\SoftWare\erlang\bin\erl.exe
注意:如果之前安装了Erlang的其他版本,需要卸载后在进行重新安装和设置。
在开始菜单查找Erlang,点击启动 打开如下界面,那么Erlang就安装成功了。接下来就安装RabbitMQ。
三:安装RabbitMq#
可以在RabbitMQ的官方网站下载最新版本的RabbitMQ服务器安装程序这里我下载的是官方推荐的最新版本 然后点击默认安装。
# 下载地址 https://www.rabbitmq.com/install-windows.html
设置RabbitMQ环境变量#
RabbitMQ 安装好后在开始菜单输入rabbitmq 会看到三个菜单:
这里的三个菜单是提供控制Windows service的命令,为了能够在任意Windows命令窗口上操控RabbitMQ服务需要在系统里加一个环境变量并且配置在系统的PHTH环境变量中。
# 安装路径 D:\SoftWare\RabbitMq\rabbitmq_server-3.7.7\sbin
四:安装 rabbitmq_management#
我们用命令查看一下RabbtitMQ的所有插件:
C:\WINDOWS\system32>rabbitmq-plugins list
看到RabbtitMQ 罗列出来了很多插件
我们用下列命令安装rabbitmq_management插件,这款插件是可以可视化的方式查看RabbitMQ 服务器实例的状态,以及操控RabbitMQ服务器。
C:\WINDOWS\system32>rabbitmq-plugins enable rabbitmq_management
运行完命令后,看到下图表示安装成功了。
现在我们在浏览器中输入:http://localhost:15672 可以看到一个登录界面:
这里可以使用默认账号guest/guest登录后的界面如下:
在浏览器中输入 http://localhost:15672/api/ 就可以看到 RabbitMQ Management HTTP API 文档,如下图:
这样就可以查看RabbitMQ server实例状态的相关信息了。
五:管理rabbitmq_management的用户#
用命令rabbitmqctl list_users 查看一下现rabbitmq_management注册用户
发现现在只有一个用户guest,并且它的tag是administrator.
那么在命令行下创建一个用户,创建用户的命令合是:
rabbitmqctl add_user [username] [password]
现在创建一个username=rabbit1 password=rabbit1的用户, 命令如下:
rabbitmqctl add_user rabbit1 rabbit1
创建成功了:
现在看下有多少用户,跑一下命令:
rabbitmqctl list_users
发现用户列表里多了一个用户 rabbit1,但是tag是空的。使用命令给rabbit设置tag,设置tag的命令格式:
rabbitmqctl set_user_tag [tag1] [tag2] ...
一次可以给一个用户设置多个tag,也可以设置一个
现在rabbit1 有两个tag了一个是administrator ,一个是none.
有5个tag可供选择,分别是:administrator ,monitoring,policymaker,management和none 有兴趣的同学可以到这里了解各个tag的含义,其实这里的tag代表的是权限,administrator是最高权限,none表示不能访问,这里administrator和none的组合,权限应该是向高看齐,忽略none,用的是administrator的权限。我们用rabbit1/rabbit1 登录rabbitmq_management。
其实有了rabbitmq_management这个可视化插件,很多事情都可以在这个插件里干,包括创建用户,创建交换机(Exchange)和创建队列(Queque)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!