从0开始的mqtt服务器

简介: 本篇文章将会介绍如何利用阿里云搭建一个属于自己的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版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
3901 42
|
物联网
如何在腾讯云等平台搭建自己的物联网MQTT服务器Broker
物联网技术及MQTT协议被广泛应用于各种场景。本文介绍物联网MQTT服务助手下载,如何搭建自己的物联网平台,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
936 37
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
3182 0
|
消息中间件 存储 RocketMQ
RocketMQ源码分析之事务消息实现原理下篇-消息服务器Broker提交回滚事务实现原理
RocketMQ源码分析之事务消息实现原理下篇-消息服务器Broker提交回滚事务实现原理
|
IDE 物联网 网络性能优化
什么是MQTT?如何使用ESP12F芯片连接到MQTT服务器
通过上述步骤,你可以成功地使用ESP12F模块连接到MQTT服务器,发布和订阅消息。MQTT的轻量级和高效性使其非常适合各种物联网应用,而ESP12F模块的强大功能和低成本使其成为实现这些应用的理想选择。
916 0
|
消息中间件 Serverless 网络性能优化
消息队列 MQ产品使用合集之客户端和服务器之间的保活心跳检测间隔是怎么设置的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
消息中间件 存储 JSON
服务器的异步通信——RabbitMQ2
服务器的异步通信——RabbitMQ
523 0
|
消息中间件 缓存 中间件
服务器的异步通信——RabbitMQ1
服务器的异步通信——RabbitMQ
387 0
|
8月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
724 10
|
8月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
805 8