面对日益复杂的信息平台,消息队列使用是解决什么问题呢?初步总结一下可以解决如下场景问题:
业务解耦:A系统需要耦合B、C、D系统,在消息队列之前可以通过共享数据、接口调用等方式来实现业务,现在可以通过消息中间件进行解耦。
削峰填谷:在互联网经常会出现流量突然飙升的情况,以前很多时候就是通过性能优化、加服务器等方式,可以通过消息中间件缓存相关任务,然后按计划的进行处理。
异步:可以通过消息推送及短信发送进行说明,业务平台并不关注具体消息的发送细则,完全可以通过消息队列的方式,直接下发任务,由任务消费者进行处理。
本文将详说如何在Windows系统中安装RabbitMq,以及在安装过程中出现的问题及其解决方案。
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。
RabbitMQ服务器是用Erlang语言编写的, 而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
正因为RabbitMQ服务器是用Erlang语言编写的, 所以,你需要去查看rabbitMq适应Erlang的版本,因为不同的rabbitMq版本对应不同的Erlang版本,可以点击如下该链接查看版本匹配度:
https://www.rabbitmq.com/which-erlang.html#compatibility-matrix
erlang的下载和安装可以参考该链接:https://blog.csdn.net/lvoelife/article/details/126624817
官网地址地址给出的是最新版本的RabbitMQ,和你下载的Erlang可能不匹配,你可以点击该链接,下载适配你Erlang版本的RabbitMq:https://github.com/rabbitmq/rabbitmq-server/releases
为了保证你下载到的RabbitMQ和Erlang版本一致,我把他们存储到我的百度云和微云中,可以点击如下链接去下载:
链接:https://pan.baidu.com/s/193o2QDd2WOeB81hdpq0SyQ
提取码:3296
链接:https://share.weiyun.com/VK3he2un
密码:w87zeg
因为我的电脑是windows系统,所以,我按照Windows系统对应的rabbitmq。
我没有下载官网给出的最新版本的RabbitMq,而是在git上下载我想要版本,如是链接:https://github.com/rabbitmq/rabbitmq-server/releases?page=7
在安装RabbitMq时如果报出如下错误:
大致意思是我们的电脑上没有安装Erlang,让我们去安装Erlang,上文也说了RabbitMQ服务器是用Erlang语言编写的,可以点击该链接去安装Erlang:windows环境下载和安装erlang
我的是win10系统,按照如下方式配置Erlang环境变量。
变量名:RABBITQM_SERVER
变量值:erlang安装地址bin目录之前的地址,比如我的是D:\Software\rabbitmq\rabbitmq_server-3.8.15
rabbitmq-plugins list
如下图所示:
这款插件是可以可视化的方式查看RabbitMQ服务器实例的状态,以及操控RabbitMQ服务器。
rabbitmq-plugins enable rabbitmq_management
如下图所示:
·3. 启动rabbitMq服务
安装rabbitMq的目录(我的是D:\Software\rabbitmq\rabbitmq_server-3.8.15) -> sbin目录 -> 双击rabbitmq-server.bat,我如下图所示:
输入用户名guest和密码guest,即可成功访问,如下图所示:
# Rabbitmq常用命令 #启动服务 service rabbitmq-server start #查看rabbitmq状态 service rabbitmq-server status #重启服务 service rabbitmq-server restart #停止服务 service rabbitmq-server stop #查看账号列表 sudo rabbitmqctl list_users #添加账号 sudo rabbitmqctl add_user username password #设置用户标签 sudo rabbitmqctl set_user_tags username tagname #删除用户 sudo rabbitmqctl delete_user username #设置visualhost权限 sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
Spring Boot集成RabbitMQ可以参考当前链接:https://blog.csdn.net/lvoelife/article/details/126622148