从0开始的mqtt服务器

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本篇文章将会介绍如何利用阿里云搭建一个属于自己的mqtt服务器

作为一名电子科大物联网专业大二的学生,由于参与的智能寝室项目需要利用mqtt传输传感器数据,因此希望能够在云服务器上搭建属于自己的mqtt服务器。通过咨询周围的大佬,得知阿里云服务器不仅稳定安全,同时也对大学生提供“飞天加速计划·高校学生在家实践”活动,因此通过本活动获得了一台ECS用于项目实验。


本次选用的镜像为CentOS 8.5 64位官方镜像,使用mosquitto搭建mqtt服务器。在正式使用SSH连接服务器进行安装之前需要注意:mqtt协议通常使用1883/8883端口进行未加密/加密数据传输,因此在服务器所属的安全组中要添加相应的端口,例如本次我添加了1883端口:

image.png

在使用ssh远程登陆到系统后,我们就可以开始安装了。

  1. 使用yum获得mosquitto

在命令行中输入下列命令寻找市场中是否有mosquitto软件包

yum search mosquitto

image.png

通过查找可以发现,市场中存在mosquitto与mosquitto-devel两款软件包,在这里,我们选择全部安装:

yum install mosquitto mosquitto-devel

在确认之后系统便会自动安装。不大一会,当出现“Installed:……Complete!”字样时mosquitto便安装好了。

  1. 配置mosquitto

安装完成之后,所有配置文件会被放置于/etc/mosquitto/目录下,其中最重要的就是Mosquitto的配置文件,即mosquitto.conf,其中详细说明了配置参数。在本次设置中,我将自己的设置另外单独保存在my.conf文件中,其内容如下:

#my config file for mosquitto# General configuration#允许匿名登录allow_anonymous true# Listeners#监听1883端口,无此命令无法与外网通信listener 1883# Logging#在窗口中输出日志log_dest stdou
#选择日志记载内容log_type debug
log_type error
log_type warning
log_type notice
log_type information
log_type subscribe
log_type unsubscribe
#在日志前添加指定格式时间戳log_timestamp_format %Y-%m-%dT%H:%M:%S
#将日志写入指定文件log_dest file /var/log/mosquitto.log

其中需要注意的是,程序本身无法自动生成日志文件,需要在指定位置主动创建一个空文件,同时要设置写权限,防止程序出现权限不足,无法启动的现象。

vi /var/log/mosquitto.log
#保存并退出后更改权限设定chmod666 mosquitto.log
#如果不设置,在程序启动后会出现下列字样:Error: Unable to open log file /var/log/mosquitto.log for writing.

完成上列操作后,服务器就可以使用了,输入指令后,服务器便会在屏幕上打印出日志,此时,我们便可使用其他设备通过公网ip进行通信了。

mosquitto -c /etc/mosquitto/my.conf
#-c指令用于使用指定配置文件,使用-d命令可以在后台运行

image.pngimage.png


用过这次安装过程,我掌握了linux中对文件的操作,多进程处理等多种方法。在这次安装过程中让我体会最大的是linux开放的特性使得软件的安装方式更多地依赖于用户对于系统的理解,需要手动操作的部分也成倍增加。对于刚刚接触linux的菜鸟来说,充分利用网络资源,多逛逛开发者社区、各大论坛是解决种种问题的一大法宝。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
3月前
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
251 0
|
6月前
|
NoSQL 关系型数据库 MySQL
涉及rocketMQ,jemeter等性能测试服务器的安装记录
涉及rocketMQ,jemeter等性能测试服务器的安装记录
71 1
|
6月前
|
消息中间件 存储 RocketMQ
RocketMQ源码分析之事务消息实现原理下篇-消息服务器Broker提交回滚事务实现原理
RocketMQ源码分析之事务消息实现原理下篇-消息服务器Broker提交回滚事务实现原理
|
5月前
|
IDE 物联网 网络性能优化
什么是MQTT?如何使用ESP12F芯片连接到MQTT服务器
通过上述步骤,你可以成功地使用ESP12F模块连接到MQTT服务器,发布和订阅消息。MQTT的轻量级和高效性使其非常适合各种物联网应用,而ESP12F模块的强大功能和低成本使其成为实现这些应用的理想选择。
195 0
|
5月前
|
消息中间件 Serverless 网络性能优化
消息队列 MQ产品使用合集之客户端和服务器之间的保活心跳检测间隔是怎么设置的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
6月前
|
消息中间件 存储 JSON
服务器的异步通信——RabbitMQ2
服务器的异步通信——RabbitMQ
51 0
|
6月前
|
消息中间件 缓存 中间件
服务器的异步通信——RabbitMQ1
服务器的异步通信——RabbitMQ
48 0
|
6月前
|
消息中间件 数据安全/隐私保护
MQTT微消息队列服务器连接报错:Error: Connection refused: Not authorized
使用MQTTX工具进行测试时,通过AccessKey创建了Client ID的用户名和密码。配置了公网接入点及端口1883,但尝试连接时出现错误。已附上工具截图:![](https://ucc.alicdn.com/pic/developer-ecology/3byii5uar64gg_36327474e991439da422f38c450ef153.png)。确认过用户名、密码和Client ID无误,问题仍未解决,期待回复!
|
6月前
|
网络协议 Java 物联网
阿里云服务器上搭建 MQTT服务
阿里云服务器上搭建 MQTT服务
|
2天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
24 9

热门文章

最新文章