PS:原创文章,如需转载,请注明出处,谢谢!
本文地址:http://flyer0126.iteye.com/blog/2228953
MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议,适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。值得一提的是mqtt提供三种不同质量的消息服务:
- “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
- “至少一次”,确保消息到达,但消息重复可能会发生。
- “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
设置
1. mosquitto_pub 客户端可发布一条消息到指定主题
1.1. 用法:
mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s} [-u username [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message-topic
1.2. 选项:
-q, --qos
指定消息的服务质量,可以为0,1,2,默认是0.
2. sub_client 客户端订阅一个或多个主题的消息
2.1. 用法:
mosquitto_sub [-c] [-d] [-h hostname] [-i client_id] [-I client id prefix] [-k keepalive time] [-p port number] [-q message QoS] [--quiet] [-v] [ -u username [-Ppassword] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] -t message topic ...
2.2. 命令:
mosquitto_sub 订阅到主题,接收到消息时打印
2.3. 选项:
-q, --qos
指定消息的服务质量,可以为0,1,2,默认是0.
附:官方文档描述
MQTT defines three levels of Quality of Service (QoS). The QoS defines how hard the broker/client will try to ensure that a message is received. Messages may be sent at any QoS level, and clients may attempt to subscribe to topics at any QoS level. This means that the client chooses the maximum QoS it will receive. For example, if a message is published at QoS 2 and a client is subscribed with QoS 0, the message will be delivered to that client with QoS 0. If a second client is also subscribed to the same topic, but with QoS 2, then it will receive the same message but with QoS 2. For a second example, if a client is subscribed with QoS 2 and a message is published on QoS 0, the client will receive it on QoS 0.
Higher levels of QoS are more reliable, but involve higher latency and have higher bandwidth requirements.
-
0: The broker/client will deliver the message once, with no confirmation.
-
1: The broker/client will deliver the message at least once, with confirmation required.
-
2: The broker/client will deliver the message exactly once by using a four step handshake.
相关推荐
在Cisco网络设备上使用服务质量(QoS),可以为某些类型的网络流量提供固定的带宽和优先级。笔者会向大家介绍如何通过我们的设置模板,轻松的为Cisco路由器和交换机配置 QoS。网络管理员可以通过QoS为某类网络流量...
Internet服务质量QoS的实现机制.pdf、 Internet服务质量QoS的实现机制.pdf
全书分为基础qos概念和高级qos概念两部分,由10章组成,内容包括:服务质量概述、端对端的qos、catalyst平台上的qos支持概述、catalyst 5000系列交换机中的qos支持、服务质量模块化命令行界面简介、catalyst 2950和...
网络服务质量QOS配置手册高峰会特辑他也就反对钛合金
分析计算机网络服务质量(QoS)的理论.pdf
QoS的基本现状和及其发展状况。本文从基本原理入手。详细介绍最近几年QoS的发展,
本书面向的是使用Catalyst交换机的网络工程师,特别是那些希望进一步了解此类交换机中所能提供QoS(Quality of Service,服务质量)能力的用户。此外,对于任何在Cisco网络中处理端对端QoS策略的网络工程师而言,他们...
CCNA课程实验第二十五章:QOS 服务质量控制基本配置,本章介绍了QOS 服务质量控制基本配置命令和QOS 服务质量控制的基本知识!还有更多的CCNA实验,请查看小弟的下载资源
QoS(Quality of Service)即服务质量。对于网络业务,服务质量包括传输的带宽、传送的时延、数据的丢包率等。在网络中可以通过保证传输的带宽、降低传送的时延、降低数据的丢包率以及时延抖动等措施来提高服务质量...
Cisco Catalyst QoS-园区网中的服务质量
《Cisco Catalyst QoS 园区网中的服务质量》
IPv6的提出主要是由于IPv4的地址空间不足引起的,它不但解决了IPv4中存在的一些问题,而且专门针对因特网的需求,提供了一些新的...认识IPv6的新特性及对QoS问题认识的深刻程度将直接影响IPv6在今后网络中的实际应用效果。
2.使用UCI命令行的基本配置: 3.启动并查找错误输出和测试): 4.在每次启动时使脚本运行:
本文主要分析满足用户与任务应用需求的卫星网络服务质量QoS需求,为设计建设满足某应用需求的卫星网络提供支持。首先分析卫星网络组成结构特点与运行结构特点,再对满足用户与任务应用需求的卫星网络服务质量QoS关键...
基于Linux系统的IP服务质量(QoS)管理.pdf
简单介绍QoS技术原理、配置方式、拥塞管理、优先级映射等
本书回顾了现代计算机网络,特别关注性能和服务质量。
路由器的配置方法和网络拓扑图,路由器的配置方法和网络拓扑图
服务质量(quality of service,QoS)作为Web服务非功能属性的代表,已被广泛作为重要的服务选择依据。现有QoS预测方法存在着难以兼顾运行效率与预测准确度的问题,且普遍忽略了服务器端的QoS预测。针对该问题,提出...
网络游戏-确定移动专用网络的服务质量(QoS)路由.zip