5G对MQTT有什么影响?

5G对MQTT有什么影响?,第1张

您好,MQTT在物联网应用中的主要优势有:1)可靠传输:MQTT可以保证消息可靠安全的传输,并可以与企业应用简易集成;2)消息推送:支持消息实时通知、丰富的推送内容、灵活的Pub-Sub以及消息存储和过滤;3)低带宽、低耗能、低成本:占用移动应用程序带宽小,并且带宽利用率高,耗电量较少。MQTT的优势还表现在安全性。相对于其它标准协议,MQTT属于轻量级双向消息传输协议,主要优势是开源、可靠、轻巧、简单。MQTT的传输格式非常精小,最小的数据包只有2个比特,且无应用消息头。MQTT可以保证消息的可靠性,它包括三种不同的服务质量(最多只传一次、最少被传一次、一次且只传一次),如果客户端意外掉线,可以使用“遗愿”发布一条消息,同时支持持久订阅。谢谢。

broker的主要职责是接受发布者发布的所有消息,并将其过滤后分发给不同的消息订阅者。
如今有很多的broker,下面就是一张关于各种broker对比的:

目前我用过的有mosquitto和emqttd(20版本后改叫EMQ),因为目前的需求是希望做每秒10万以上的数据接入,所以需要考虑建立集群。但是在使用mosquitto的过程中发现他不支持集群,所以就放弃了,转投emqttd。
在使用mosquitto过程中发现了一些问题:
在使用mosquitto时,如果想使用集群的话,可能会需要进行二次开发。目前只支持桥接。并且他在遍历时的效率非常低,使得他无法支持大量的客户端或者 *** 作过于频繁的 *** 作(比如十万或百万级别的客户端同时发送数据)
emqttd有以下优点:

EMQ 20 (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源 MQTT 消息服务器。(抄自 EMQ官方文档 )

1、 下载mosquitto安装文件()
2、 找到相应系统的安装文件安装,如果不想做任何设置直接在服务里启动就行。
3、配置文件
如果需要配置一些用户名、密码、用户权限的参数,则需要修改安装目录下的mosquittoconf文件
下面来说说我用到的一些参数吧:
①用户密码: #password_file pwfileexample 后面跟着是用户密码配置文件,需写上绝对路径并且路径不带空格
②创建用户密码:打开doc窗口,进入mosquitto安装目录,运行mosquitto_passwd -c pwfileexample userName 回车,然后输入密码(密码输入两遍后,在该文件里会自动加密密码)
生成的文件内容格式例如:
userName:$6$Ls7JYQTdn9xagJJ2$zngeT758n1Wn1hnVLjFdK2cHb6lcmI5CMrMTNZe2SqkUj0fBgKts62gvlyWYwdY3/WArx/SAtFRKlvKKnHRCUg==
userName2:$6$bymgVcrtj+7wj8mR$nq1atPD3nreRgA6gDbDjfbUGZIlrmenOcWrXMoneBp+zmAxnOybqJvrBZboxX1XXPnz/TKZwz9aKQJ72zJym5A=
③如果想再增加用户,则执行mosquitto_passwd -u pwfileexample userName2即可
④用户权限:#acl_file aclfileexample 后面跟着是用户权限配置文件,需写上绝对路径并且路径
文件内容格式为:
user userName
/etc/ldsoconfd
mosquittoconf
/usr/local/lib/python26/site-packages ( mosquittopy )
/usr/local/bin
vi /etc/sysconfig/iptables
/usr/local/src/mosquitto-113/lib/python
make install
ldconfig
不改configmk里面的东西
需要安装
yum -y install patch make gcc gcc-c++ gcc-g77 flex bison
centos56下 yum -y install gcc automake autoconf libtool make
yum -y install openssl openssl-devel vim-minimal
这里为只读
topic read 主题
user userName2
这里为可读可写
topic 主题
topic #(或+)表示可以读写任何主题
到这里用户密码及权限已配置完成,订阅和发布的时候加上用户名及密码即可验证:
例如:订阅
client = new MqttClient("tcp://127001:1883","java_client0000000000");
// 回调处理类
Myback callback = new Myback();
clientsetCallback(callback);
// 创建连接可选项信息
MqttConnectOptions conOptions = new MqttConnectOptions();
conOptionssetCleanSession(false);
conOptionssetUserName("userName");
conOptionssetPassword("pwd"toCharArray());
// 连接broker
clientconnect(conOptions);
clientsubscribe("主题");
}
发布:
MqttClient client = new MqttClient("tcp://127001:1883","mqttserver-pub");
MqttTopic topic = clientgetTopic("主题");
MqttMessage message = new MqttMessage(topicgetName()getBytes());
messagesetQos(1);
MqttConnectOptions options = new MqttConnectOptions();
optionssetUserName("userName");
optionssetPassword("pwd"toCharArray());
clientconnect(options);
topicpublish(message);
}
即可验证!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存