MQTT和ActiveMQ有什么区别?wmqtt.jar和mqttv3.jar又有什么区别

MQTT和ActiveMQ有什么区别?wmqtt.jar和mqttv3.jar又有什么区别,第1张

QTT只是IBM推出的一个消息协议,基于TCP/IP的。两个App端发送和接收消息需要中间人,这个中间人就是消息服务器(比如ActiveMQ/RabbitMQ),三者通信协议就是MQTT。
wmqttjar是IBM实现的App端收发消息的具体实现,W意思为Webspare,说明消息服务器采用Webspare(WebSphere MQ Integrator Broker)。
IBM IA92: WBI Brokers
mqttv3jar不知道是哪个,如果是orgeclipsepahoclientmqttv3,则是Paho项目,是一个开源的MQTT Client实现。

物联网 (internet of thing) ,表示的是可以把一些带某些传感器的设备(终端),接入到互联网的行为。
通过互联网连接这些设备,这些设备就能够互相协作。
MQTT 就是这些设备之间数据通信的一个基于 TCP/IP 的协议。

每个终端都和实现了 MQTT 协议的代理/服务器相连。
通过 published MQTT 代理服务器的某个 主题 发送数据。
通过 subscription 从 MQTT 代理服务器获取自己订阅的 主题 数据。

MQTT 协议是一种轻量级的、灵活的网络协议。并且非常适合 IOT 的场景。

大多数开发人员已经熟悉了 >为什么要介绍MQTT呢?MQTT又是什么呢?MQTT能做什么呢?下面,我就来简单的介绍一下

     MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。  
    MQTT的特点:

MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

2、对负载内容屏蔽的消息传输;

3、使用 TCP/IP 提供网络连接;

4、有三种消息发布服务质量:

“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

“至少一次”,确保消息到达,但消息重复可能会发生。

“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;

6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;

    说简单一点,它就是一个即时通讯协议,在占用很少的资源情况下,可完成即时通讯。说以说esp8266采用mqtt通讯协议,是一个很不错的选择,使用esp8266+mqtt实现一个物联网的小实验,也是很容易的,其运行的效率也很高,具体的mqtt我在这里就不多说了,大家可以自行去度娘问问啦。

MQTT跟WebSocket关系不大。他们不是在一个层级的。

WebSocket 很多网站使用轮询实现推送技术。轮询是在特定的的时间间隔(比如1秒),由浏览器对服务器发出>

Comet使用了AJAX改进了轮询,可以实现双向通信。但是Comet依然需要发出请求,而且在Comet中,普遍采用了长链接,这也会大量消耗服务器带宽和资源。

于是,WebSocket协议应运而生。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器通过 TCP 连接直接交换数据。WebSocket 连接本质上是一个 TCP 连接。

WebSocket在数据传输的稳定性和数据传输量的大小方面,具有很大的性能优势。Websocketorg 比较了轮询和WebSocket的性能优势:

>

Use Case A: 1,000个客户端每秒接受一个message,网络吞吐量 (21,000)=2,000 bytes = 16,000 每秒bits

Use Case B: 10,000个客户端每秒接受一个message,网络吞吐量 (210,000)=20,000 bytes = 160,000 每秒bits

Use Case C: 100,000个客户端每秒接受一个message,网络吞吐量 (2100,000)=200,000 bytes = 1,600,000 每秒bits

MQTT 协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

非常小的通信开销(最小的消息大小为 2 字节),小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。

支持各种流行编程语言(包括 C,Java,Ruby,Python 等等)且易于使用的客户端;

使用发布 / 订阅消息模式,提供一对多的消息发布,解除应用程序耦合。

对负载内容屏蔽的消息传输。

使用 TCP/IP 提供网络连接。

有三种消息发布服务质量,让消息能按需到达目的地,适应在不稳定工作的网络传输需求 :

"至多一次",消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

"至少一次",确保消息到达,但消息重复可能会发生。

"只有一次",确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13471985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-13
下一篇 2023-08-13

发表评论

登录后才能评论

评论列表(0条)

保存