『亚马逊云科技产品测评』活动征文|基于EC2搭建消息队列RabbitMQ

本文介绍了如何在AWS EC2上搭建RabbitMQ,并启用MQTT功能。通过创建EC2实例,安装Erlang和RabbitMQ,设置MQTT客户端,实现了前端即时通讯功能。此外,还展示了在Laravel框架中使用RabbitMQ的步骤,强调了消息中间件在异步通信和即时通讯中的应用价值。
摘要由CSDN通过智能技术生成

『亚马逊云科技产品测评』活动征文|基于EC2搭建消息队列RabbitMQ

提示:授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道


前言

现在项目对及时性的要求越来越高,HTTP协议只是一次性的协议,虽然也能通过轮询及时获取,但是却耗费了更多的计算资源,那有没有什么是订阅式的消息呢?不用我们去实施轮询,今天我们要说的MQTT协议就是一种订阅发布的协议,MQTT的具体实现有很多,今天我们使用rabbitmq来测试,rabbitmq既是队列也可以使用它的router支持mqtt,如果你的业务只是少量地方使用即时通信,需要一个简易的消息系统,你可以直接考虑 MQ 的实现, MQ 有很高的吞吐率,具有持久化,还可以横向扩展,总之还不错,用就完了,奥利给!

我们会从rabbitmq的安装部署到程序的构建使用,欢迎大家一起学习交流!

MQTT协议

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上。 MQTT 最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

在这里插入图片描述

MQTT相关概念

实际上还是 MQ 的那些东西,主要看 MQ 有没有实现 MQTT 模型,懂的随便看看,不懂的先去理解 MQ

  • Publisher(发布者):消息的发出者,负责发送消息。
  • Subscriber(订阅者):消息的订阅者,负责接收并处理消息。
  • Broker(代理):消息代理,位于消息发布者和订阅者之间,各类支持MQTT协议的消息中间件都可以充当。
  • Topic(主题):可以理解为消息队列中的路由,订阅者订阅了主题之后,就可以收到发送到该主题的消息。
  • Payload(负载);可以理解为发送消息的内容。
  • QoS(消息质量):全称Quality of Service,即消息的发送质量,主要有QoS 0、QoS 1、QoS 2三个等级,下面分别介绍下:
    • QoS 0(Almost Once):至多一次,只发送一次,会发生消息丢失或重复;
    • QoS 1(Atleast Once):至少一次,确保消息到达,但消息重复可能会发生;
    • QoS 2(Exactly Once):只有一次,确保消息只到达一次。

安装部署RabbitMQ

我们这里是通过 AWS EC2进行MQ的部署安装的,熟悉AWS的同学可以跳过这步

创建一台EC2实例

登录AWS账号后,在控制台选择 EC2,然后点击启动实例进行配置选择

在这里插入图片描述

  • 名称:输入 MQ Server
  • 操作系统:Amazon Linux

大家根据自己熟悉的操作系统选择即可,我这里平时都是使用 Centos,所以直接使用了 Amazon Linux

搭建MQ环境

通过实例列表,然后点击操作,点击连接,就可以到连接实例的页面:

在这里插入图片描述
可以把用户名改成 root 进行连接,看到这个页面就是连接成功了

在这里插入图片描述

安装MQ环境依赖

yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel
  • 安装 Erlang
wget http://erlang.org/download/otp_src_23.0.tar.gz
  • 解压Erlang安装包
tar -zxvf otp_src_23.0.tar.gz
  • 创建 erlang 文件夹
mkdir /usr/local/erlang
  • 编译安装 Erlang
cd otp_src_23.0
./configure --prefix=/usr/local/erlang --without-javac
make && make install
  • 设置环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/erlang/bin
source /etc/profile

# 查看版本信息
erl -version

安装RabbitMQ

  • 获取mq安装包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.7/rabbitmq-server-3.10.7-1.el8.noarch.rpm
  • 导入签名密钥
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
  • 安装 RabbitMQ Server
yum install rabbitmq-server-3.10.7-1.el8.noarch.rpm
  • 设置 RabbitMQ 开机自启动
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
  • 创建新用户
rabbitmqctl add_user dev 123456
# 设置为管理员
rabbitmqctl set_user_tags dev administrator
# 赋予管理员账户所有权限
rabbitmqctl set_permissions -p / dev ".*" ".*" ".*"
  • 启动web界面
rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述

  • 使用浏览器访问 http://IP:15672

看到这个界面就是安装成功:

在这里插入图片描述

RabbitMQ启用MQTT功能

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值