简介
RabbitMq作为一款消息队列产品,它由Erlang语言开发,实现AMQP(高级消息队列协议)的开源消息中间件。
应用场景
-
异步处理
场景说明:用户注册后,注册信息写入数据库,再发邮件、短信通知。
-
应用解耦
网上购物,用户提交订单后,订单系统需要通知库存系统。传统做法,
-
流量削峰
前端加入消息队列。大批量用户请求到达后,写入消息队列,并设置最大阈值。超过该阈值的请求丢弃返回错误给客户端。系统只需要从消息队列中取正常的请求来进行处理即可。
安装
安装环境:Ubuntu 20.04,使用如下命令安装
** 更新安装包**
bash
sudo apt-get update
安装Erlang
安装rabbitmq,由于rabbitmq需要erlang语言支持,所以需要安装erlang。
bash
apt-get install erlang
执行命令,查看erlang是否安装成功
bash
erl
显示如下图即安装成功:
然后退出命令行:Ctrl + c
查看erlang与rabbitmq版本对应关系
https://www.rabbitmq.com/docs/3.13/which-erlang
安装 RabbitMq
查看版本
bash
apt-cache madison rabbitmq-server
开始安装
bash
apt-get install rabbitmq-server
执行命令查看安装结果
bash
systemctl status rabbitmq-server
Rabbitmq允许web访问
增加远程登录账号
使用命令查看服务状态。
如果服务没有运行,尝试启动它:
bash
systemctl start rabbitmq-server
systemctl status rabbitmq-server
systemctl stop rabbitmq-server
# 或者
service rabbitmq-server start
service rabbitmq-server status
service rabbitmq-server stop
# 添加远程账号
rabbitmqctl add_user root root
# 为账号设置权限
# role替换为 administrator,monitoring,management
# administrator,超级管理员角色,可以登录控制台查看所有信息,并可以对用户、策略操作
# monitoring,监控者角色,可以登录控制台查看rabbitmq节点相关信息,无法对策略管理
# management,普通管理者角色,仅可以登录控制台,无法看到节点信息
rabbitmqctl set_user_tags username role
# 查看账户列表
rabbitmqctl list_users
# 修改密码
rabbitmqctl change_password root root
ubuntu开放端口供外网访问:
bash
rabbitmq-plugins enable rabbitmq_management
sudo ufw allow 15672
sudo ufw allow 5672
此时浏览器即可访问
显示登录页面如图:
然后输入刚刚设置的roo,roo进行登录