Springboot整合Mqtt

什么事MQTT?

MQTT(Message Queuing Telemetry Transport)是机器对机器/物联网链接协议,是一种轻量级的发布/订阅消息传输协议,专为资源受限设备和低带宽、不可靠的网络环境设计。它特别适用于物联网(IoT)应用,广泛应用于传感器通信、远程监控、消息通知等场景。

MQTT的特点:

1、轻量级

        1、MQTT对接协议简单容易实现,头部开销小(最小小只有2字节),1字节固定报头,2字节心跳报文,最小化传输开销和协议交换,有效减少网络流量。适合网络受限设备和低带宽设备。

        2、低开销也就是意味着更少的网络资源消耗和更快的网络传输。

2、发布/订阅消息传输协议

        1、MQTT采用发布/订阅模式,客户端可以发布消息到某个主题(topic),也可以订阅一个或多个主题。

        2、这种模式解耦了消息的生产者和消费者,提供了灵活的消息传递机制。

3、QoS支持

        1、QoS 0:最多一次(At most once),消息发布完全依赖底层网络的能力。消息可能会丢失。

        2、QoS 1:至少一次(At least once),确保消息到达,但可能会重复接收。

        3、QoS 2:只有一次(Exactly once),确保消息到达且只到达一次,适合关键业务场景。

 4、持久会话

        1、MQTT支持持久会话,即使客户端断开连接,Broker也会保存客户端的订阅信息和未送达的消息。

        2、这使得客户端可以在重新连接后接收到未读的消息。

 5、遗嘱消息

        客户端可以设置遗嘱消息,当客户端意外断开时,Broker会将遗嘱消息发布到指定的主题,通知其他客户端。

6、保留消息

        客户端发布消息时可以设置为保留消息,Broker会将最后一条保留消息保存下来,新订阅该主题的客户端会立即收到该消息。

MQTT的工作原理


MQTT的核心组件包括客户端和Broker:

        客户端:任何能够连接到Broker并发布或订阅消息的设备或应用程序。
        Broker:中间人,负责接收、存储和分发消息到订阅了相关主题的客户端。


工作流程:

        连接:客户端与Broker建立连接,可以设置连接参数,如用户名、密码、客户端ID、心跳间隔等。
        发布:客户端发布消息到某个主题,Broker接收到消息后,根据订阅列表将消息转发给所有订阅该主题的客户端。
        订阅:客户端订阅一个或多个主题,Broker会将这些主题的消息转发给该客户端。
        断开连接:客户端主动或被动断开连接,Broker会处理遗嘱消息和持久会话等。


MQTT协议的优点


        高效传输:由于协议头部开销小,适合低带宽网络,传输效率高。
        实时性好:发布/订阅模式支持实时消息传递,适合实时监控和通知。
        灵活性强:客户端可以随时发布和订阅不同主题,系统扩展性好。
        可靠性高:通过不同的QoS级别,可以满足不同可靠性需求的消息传递。


适用场景


        物联网设备通信:传感器数据采集、设备状态监控等。
        移动消息推送:即时消息通知、报警信息推送等。
        智能家居:家电控制、环境监测、安防报警等。
        工业自动化:设备数据采集、远程控制、故障诊断等。

  • 27
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值